java并发编程之CompletionService

2017-02-20  本文已影响1982人  miaoLoveCode

应用场景

当向Executor提交多个任务并且希望获得它们在完成之后的结果,如果用FutureTask,可以循环获取task,并调用get方法去获取task执行结果,但是如果task还未完成,获取结果的线程将阻塞直到task完成,由于不知道哪个task优先执行完毕,使用这种方式效率不会很高。在jdk5时候提出接口CompletionService,它整合了Executor和BlockingQueue的功能,可以更加方便在多个任务执行时获取到任务执行结果。

案例

CompletionService源码分析

CompletionService接口提供五个方法:

接下来我们来看看CompletionService接口的具体实现:ExecutorCompletionService。

ExecutorCompletionService实现分析

上一篇下一篇

猜你喜欢

热点阅读