您的位置:首页 > 其它

多线程-按顺序放(按顺序取执行结果)

2017-08-29 10:42 302 查看
package com.hthl.rabbit;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class  TestDemo{

public static void main(String[] args) throws Exception {
new TestDemo().js();
}

public void js() throws Exception{
ExecutorService service=Executors.newFixedThreadPool(3);
List<Future<String>> futureList=new ArrayList<Future<String>>();

for (int i = 0; i <10; i++) {
CallableTask task=new CallableTask(i);
futureList.add(service.submit(task));//按顺序放
}
for (int j = 0; j < futureList.size(); j++) {
System.out.println("按顺序取结果:"+futureList.get(j).get());
}
System.out.println("计算结束了!");
service.shutdown();
}

private class CallableTask implements Callable<String>{
Integer temp;
public CallableTask(Integer d){
temp=d;
}
@Override
public String call() throws Exception {
System.out.println("执行第"+temp+"个任务");
return "第"+temp+"个任务:"+Thread.currentThread().getName();
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐