2014-02-14 65 views
0

有沒有辦法讓一個不斷更新的線程池,並檢查是否有提交的可調用結束並獲得該值?一個ExcutorService允許你提交一堆線程,然後得到可調用的結果,但是如果你不知道有多少可以被提交的調用或者你想不斷地提交可調參數呢?如何獲得任何完成的可調用的結果?

ThreadPoolExecutor聽起來像我想要的,但是這隻能在可運行列表上工作,我需要能夠從線程中獲取結果。

就我而言,訂單無關緊要。我想不斷地將可調參數添加到某種隊列中,然後在進入時用這些結果做一些事情。這可以完成嗎?

回答

2

我不是100%確定我瞭解您的要求,但我認爲您可以使用ExecutorCompletionService

該類包裝的遺囑執行人,您可以使用submit添加任務,並takepoll檢索下一個完成任務。如果還沒有完成的任務,take將阻塞,直到一個任務完成。

+0

謝謝,這看起來像我在找什麼。 – tomsrobots

相關問題