我想使用ExecutorCompletionService
上的构造函数,它带有预定义的BlockingQueue
。如何使用ExecutorCompletionService
任何人都可以提供一个代码片段来展示这是如何完成的。似乎只有BlockingQueue
与Future
s。这与提交必须用Callable
s完成的事实相符。
我到这儿有点糊涂了 - 请帮助...
我想使用ExecutorCompletionService
上的构造函数,它带有预定义的BlockingQueue
。如何使用ExecutorCompletionService
任何人都可以提供一个代码片段来展示这是如何完成的。似乎只有BlockingQueue
与Future
s。这与提交必须用Callable
s完成的事实相符。
我到这儿有点糊涂了 - 请帮助...
提供给submit()
的Callables
将在内部封装为FutureTask
s,并且它是那些(或一个封装)最终将插入到提供的队列中。虽然这只是一个实现细节。 (并且,请注意,将结果插入队列的这种用例是FutureTask
中存在受保护的done()
方法的主要原因。)合同说明了结果产生函数进入并最终结果出来。从队列中提取的Future
表示您之前提交的函数的最终结果。
的javadoc for ExecutorCompletionService中有一个大的代码示例,并记录在案的构造需要BlockingQueue
。
是的我看过,它不能帮助我,因为大块代码不使用我需要的构造函数 - 你有没有尝试过自己? – Dan
正如我所说,javadoc还显示了一个构造函数,它需要一个'BlockingQueue' – skaffman