多线程知识点整理(三)

2014-11-24 03:14:12 · 作者: · 浏览: 2
个Runnable对象的周期性地运行

控制任务组

1.invokeAny方法提交所有对象到一个Callable对象的集合中,并返回某个已经完成了的任务的结果,但是无法知道返回的究竟是哪个任务的结果(适用于多个线程处理,其中一个完成,则停止所有的情况,如搜索)

2.invokeAll方法提交所有对象到一个Callable对象的集合中,并返回一个future对象的列表,代表所有任务的解决方案。

3.ExecutorCompletionService 对结果按照可获得的顺序保存起来,然后进行处理

ExecutorCompletionService service = new ExecutorCompletionService (executor);

for(Callalbe task :tasks ) service.submit(task);

for(int i=0;i

{

processFuture(service.take().get());

}

摘自 特种兵—AK47