package v1ch14.ThreadPoolTest;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/**
* @version 2010-10-18 下午05:11:11
* @author DaWei han
* @EMAIL handawei_1@126.com
*/
public class MyPoolTest {
/**
* @param args
* @throws ExecutionException
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException, ExecutionException {
//构造一个线程池
ExecutorService executor=Executors.newCachedThreadPool();
//构造一个顺序的执行器
ExecutorCompletionService<Integer> service=new ExecutorCompletionService<Integer>(executor);
List<Callable<Integer>> taks=getTasks();
for(Callable<Integer> call:taks)
{
//执行任务
service.submit(call);
}
for(int i=0;i<taks.size();i++)
{
//获得任务结果。它们是按结果的快慢排序的。
service.take().get();
}
//上面的线程池顺序服务是为了优化下面的线程池服务,因为下面的第一个任务可能很耗时,那么后面的就必须等待。
List<Future<Integer>> results= executor.invokeAll(taks);
for(Future<Integer> result:results)
{
result.get();
}
}
public static List<Callable<Integer>> getTasks()
{
return null;
}
}
分享到:
相关推荐
【经营】图解《阿米巴经营的中国模式》读书笔记:员工自主经营管理理念与方法-112页.pdf
数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数...
读书笔记:图解http读书笔记
读书笔记:Maven 实战读书笔记
读书笔记:高性能mysql读书笔记
读书笔记:高性能Mysql 读书笔记
读书笔记:数学之美读书笔记
读书笔记:人月神话读书笔记
读书笔记:Netty 权威指南读书笔记
读书笔记:架构整洁之道读书笔记
读书笔记:高性能的mysql读书笔记
读书笔记:企业应用架构模式读书笔记
读书笔记:代码整洁之道读书笔记
读书笔记:《图解HTTP》读书笔记
读书笔记:Spring Cloud微服务实战读书笔记
读书笔记:《快学Scala》读书笔记
读书笔记:《图解设计模式》读书笔记
读书笔记:SPA代码整洁之道读书笔记
读书笔记:Java并发编程之美读书笔记
读书笔记:图解HTTP笔记