2015-07-11 59 views
2

在ExecutorCompletionService中,我們使用了take()和poll()。 一個阻塞,直到隊列有一個未來和其他返回null如果沒有將來在Queue.But何時使用take()vs poll()。是否有任何特殊的條件來決定這一點,或者我們可以去任何?何時在ExecutorCompletionService中使用poll()vs take()

+0

肯定這是一個用例的事情?你使用適當的工作! –

+0

@BoristheSpider我想OP想知道使用這兩種方法中的至少一個用例。 – CKing

+0

@CKing然後,在我看來,這個問題在這裏脫離主題。 –

回答

2

如果還有其他線程在等待隊列中顯示的內容時可以執行其他操作,則可以使用poll()。您編寫一個調用poll()的循環,然後根據poll()是否返回值執行一個或另一個操作。

在多線程代碼中使用poll()IMO有點代碼異味。這意味着你有一個線程正在做兩件不同的事情。爲什麼不在這種情況下使用兩個線程?

相關問題