Java并发程序入门介绍
今天看了看Java并发程序,写一写入门程序,并设置了线程的优先级。
classElemimplementsRunnable{
publicstaticintid=0;
privateintcutDown=5;
privateintpriority;
publicvoidsetPriority(intpriority){
this.priority=priority;
}
publicintgetPriority(){
returnthis.priority;
}
publicvoidrun(){
Thread.currentThread().setPriority(priority);
intthreadId=id++;
while(cutDown-->0){
doubled=1.2;
while(d<10000)
d=d+(Math.E+Math.PI)/d;
System.out.println("#"+threadId+"("+cutDown+")");
}
}
}
publicclassBasic{
publicstaticvoidmain(Stringargs[]){
for(inti=0;i<10;i++){
Eleme=newElem();
if(i==0)
e.setPriority(Thread.MAX_PRIORITY);
else
e.setPriority(Thread.MIN_PRIORITY);
Threadt=newThread(e);
t.start();
}
}
}
由于机器很强悍,所以先开始并没看到并发的效果,感觉是按顺序执行的,所以在中间加了浮点数的运算来延迟时间。
当然,main函数里面可以用Executors来管理线程。
importjava.util.concurrent.*;
classElemimplementsRunnable{
publicstaticintid=0;
privateintcutDown=5;
privateintpriority;
publicvoidsetPriority(intpriority){
this.priority=priority;
}
publicintgetPriority(){
returnthis.priority;
}
publicvoidrun(){
Thread.currentThread().setPriority(priority);
intthreadId=id++;
while(cutDown-->0){
doubled=1.2;
while(d<10000)
d=d+(Math.E+Math.PI)/d;
System.out.println("#"+threadId+"("+cutDown+")");
}
}
}
publicclassBasic{
publicstaticvoidmain(Stringargs[]){
//for(inti=0;i<10;i++){
//Eleme=newElem();
//if(i==0)
//e.setPriority(Thread.MAX_PRIORITY);
//else
//e.setPriority(Thread.MIN_PRIORITY);
//Threadt=newThread(e);
//t.start();
//}
ExecutorServiceexec=Executors.newCachedThreadPool();
for(inti=0;i<10;i++){
Eleme=newElem();
if(i==0)
e.setPriority(Thread.MAX_PRIORITY);
else
e.setPriority(Thread.MIN_PRIORITY);
exec.execute(e);
}
exec.shutdown();
}
}热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下