2015-07-11 32 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有点代码异味。这意味着你有一个线程正在做两件不同的事情。为什么不在这种情况下使用两个线程?

相关问题