如果我有bq1.drainTo(bq2),其中bq1和bq2都是可从多个线程访问的BlockingQueue,我是否需要将排出与我必须对bq2进行的任何其他读/写操作同步?如果是这样的话,这似乎从一开始就消除了BlockingQueue的优势--有什么办法可以绕过它吗?若否,原因为何?如果有时,在什么情况下?
发布于 2015-03-20 09:34:22
您可以使用另一个阻塞队列来排出,但如果实际实现是有限的(容量有限),那么如果bg2在排出期间变满,则会抛出异常,并且drainTo操作的状态将是未知的。
https://stackoverflow.com/questions/29157900
复制相似问题