我想使用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