2010-01-30 20 views
0

我想使用ExecutorCompletionService上的构造函数,它带有预定义的BlockingQueue如何使用ExecutorCompletionService

任何人都可以提供一个代码片段来展示这是如何完成的。似乎只有BlockingQueueFuture s。这与提交必须用Callable s完成的事实相符。

我到这儿有点糊涂了 - 请帮助...

回答

1

提供给submit()Callables将在内部封装为FutureTask s,并且它是那些(或一个封装)最终将插入到提供的队列中。虽然这只是一个实现细节。 (并且,请注意,将结果插入队列的这种用例是FutureTask中存在受保护的done()方法的主要原因。)合同说明了结果产生函数进入并最终结果出来。从队列中提取的Future表示您之前提交的函数的最终结果。

1

javadoc for ExecutorCompletionService中有一个大的代码示例,并记录在案的构造需要BlockingQueue

+0

是的我看过,它不能帮助我,因为大块代码不使用我需要的构造函数 - 你有没有尝试过自己? – Dan

+0

正如我所说,javadoc还显示了一个构造函数,它需要一个'BlockingQueue' – skaffman