我想在ExecutorCompletionService
上使用带有预定义BlockingQueue
的构造函数。
任何人都可以提供代码段来展示如何完成此操作。似乎只需要BlockingQueue
Future
。这与提交必须使用Callable
s。
我在这里有点困惑 - 请帮忙......
答案 0 :(得分:1)
javadoc for ExecutorCompletionService中包含大量代码示例,文档化构造函数需要BlockingQueue
。
答案 1 :(得分:1)
提供给submit()
的Callables
将在内部包装为FutureTask
,并且最终将插入到提供的队列中的那些(或一个包装器)。但这都是一个实现细节。 (并且,请注意,将结果插入队列的这种用例是FutureTask
中存在受保护的done()
方法的主要原因。)合同表明结果产生函数进入,并且最终结果出来了。从队列中抽取的Future
代表您之前提交的函数的最终结果。