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();
}
}热门推荐
10 香港老妈结婚祝福语简短
11 毕业立体贺卡祝福语简短
12 简短新年年会祝福语
13 评论小品祝福语大全简短
14 恭喜师兄结婚祝福语简短
15 员工集体辞职祝福语简短
16 高中新生祝福语 简短
17 装修祝福语男生搞笑简短
18 生日开业蛋糕祝福语简短