67,515
社区成员
发帖
与我相关
我的任务
分享
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
public class Test {
public static void main(String[] args) {
Thr hh=new Thr();
FutureTask<String> a=new FutureTask<String>(hh);
new Thread(a,"aaa").start();//开启线程aaa
System.out.println(1);
new Thread(a,"bbb").start();//开启线程bbb
System.out.println(2);
new Thread(a,"ccc").start();//开启线程ccc
System.out.println(3);
}
}
class Thr implements Callable<String>{
int i=0;
@Override
public String call() throws Exception {
/*
* 如果线程是aaa,则执行以下代码
*/
if(Thread.currentThread().getName().equals("aaa")){
for(;i<20;i++){
System.out.println("aaa"+i);
}
System.out.println("aaa finish");
return "aaa finish";
}
/*
* 如果线程是bbb,则执行以下代码
*/
else if(Thread.currentThread().getName().equals("bbb")){
for(;i<40;i++){
System.out.println("bbb"+i);
}
System.out.println("bbb finish");
return "bbb finish";
}
/*
* 如果线程是ccc,则执行以下代码
*/
else if(Thread.currentThread().getName().equals("ccc")){
for(;i<60;i++){
System.out.println("ccc"+i);
}
System.out.println("ccc finish");
return "ccc finish";
}
return "exe failure";
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Thr hh=new Thr();
//FutureTask<String> a=new FutureTask<String>(hh);
Thread t1=new Thread(new FutureTask<String>(hh),"aaa");
t1.start();//开启线程aaa
System.out.println(1);
Thread t2=new Thread(new FutureTask<String>(hh),"bbb");
t2.start();//开启线程bbb
System.out.println(2);
Thread t3=new Thread(new FutureTask<String>(hh),"ccc");
t3.start();//开启线程ccc
System.out.println(3);
}
1
aaa0
aaa1
aaa2
aaa3
aaa4
aaa5
aaa6
aaa7
aaa8
aaa9
aaa10
aaa11
aaa12
aaa13
aaa14
aaa15
aaa16
aaa17
aaa18
aaa19
aaa finish
2
bbb20
bbb21
bbb22
bbb23
bbb24
bbb25
bbb26
bbb27
bbb28
bbb29
bbb30
bbb31
bbb32
bbb33
bbb34
bbb35
bbb36
bbb37
bbb38
bbb39
bbb finish
ccc37
3
ccc41
ccc42
ccc43
ccc44
ccc45
ccc46
ccc47
ccc48
ccc49
ccc50
ccc51
ccc52
ccc53
ccc54
ccc55
ccc56
ccc57
ccc58
ccc59
ccc finish