并发编程--在执行器中分离任务的启动与结果的处理
2014-09-09 09:12
302 查看
通常情况下,使用执行器来执行并发任务时,将Runnable或Callable任务发送给执行器,并获得Future对象来控制任务。此外,还会碰到如下情形,需要在一个对象里发送任务给执行器,然后在另一个对象里处理结果。对于这种情况,Java并发Api提供CompletionService类。
CompletionService类有一个方法用来发送任务给执行器,还有一个方法为下一个已经执行结束的任务获取Future对象。从内部实现机制来看,CompletionService类使用Executor对象来执行任务。这个行为的优势是可以共享CompletionService对象,并发送任务到执行器,然后其他的对象可以处理任务的结果。第二个方法有一个不足之处,它只能为已经执行结束的任务获取Future对象。
CompletionService类有一个方法用来发送任务给执行器,还有一个方法为下一个已经执行结束的任务获取Future对象。从内部实现机制来看,CompletionService类使用Executor对象来执行任务。这个行为的优势是可以共享CompletionService对象,并发送任务到执行器,然后其他的对象可以处理任务的结果。第二个方法有一个不足之处,它只能为已经执行结束的任务获取Future对象。
相关文章推荐
- Java并发编程-21-在执行器中分离任务的启动与结果的处理
- [笔记][Java7并发编程实战手册]4.11-4.12在执行器中分离任务的启动和结果的处理和处理在执行器中被拒绝的任务
- 在执行器中分离任务的启动与结果的处理
- 在执行器中分离任务的启动与结果的处理
- 并发编程--运行多个任务并处理第一个结果
- Java并发编程高级篇(三):执行器中执行任务并返回结果
- Java7并发编程--4.3、运行多个任务并处理结果
- 执行者分离任务的启动和结果的处理
- Java并发编程-22-处理在执行器中被拒绝的任务
- Java并发编程高级篇(五):运行多个任务并处理所有结果
- Java并发编程高级篇(四):运行多个任务并处理第一个结果
- 执行器实现返回多个任务并处理第一个结果
- 并发编程--在执行器中控制任务的完成
- Java并发编程高级篇(七):使用执行器周期性地执行任务
- Java并发编程-19-在执行器中延时执行任务和周期性执行任务
- Java并发编程高级篇(六):在执行器中延时执行任务
- 并发编程--在执行器中周期性执行任务
- Java并发编程-18-在执行器中执行任务并处理结果
- Java并发编程-25-合并任务的结果
- Java并发编程-27-异常处理及取消任务