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;
}
}
分享到:
相关推荐
- Item7:Java中的finalizers用于清理对象资源,但不应依赖其执行,因为它们可能不会被调用,而且会影响垃圾收集性能。 4. **通用方法设计** - Item8:equals方法应与`==`操作符一致,同时对所有字段进行比较。...
《ARM体系与结构读书笔记》知识点详析 一、嵌入式系统与ARM体系概览 嵌入式系统是一种专用计算机系统,广泛应用于各种设备中,如汽车、手机、医疗设备等,用于执行特定任务。ARM体系是嵌入式系统中最为流行的架构...
* 滚动条和计时器:ScrollBars、Timer 控件的使用和事件处理 五、数组 * 数组的基本概念:数组的定义、类型和使用 * 数组的定义:如何定义和使用数组 * 数组的基本操作:数组的索引、查找、排序等 * 数组应用举例...
4. **Sort.java**: 这个文件可能会包含多种排序算法的实现,如冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等。排序是计算机科学中基础且重要的问题,不同的排序算法在时间复杂度和稳定性上有所不同。...
在MySQL中,数据过滤是...随着对SQL语言的深入学习,如第一章至第十一章的笔记所涵盖的基础、版本更改、数据库操作、数据检索、排序、过滤、通配符使用以及函数应用等,将能更全面地掌握MySQL数据库管理的各个方面。
在这款压缩包中,只有一个核心文件——“阅读器”,这通常意味着它可能是一个可执行程序或者应用程序,用户只需解压并运行即可开始使用。下面我们将深入探讨电子阅读器的相关知识点。 1. **电子阅读器的基本功能**...