(在我们的制作中找到了这个代码)
我读到了有关ArrayBlockingQueue的内容,发现它已被限制并被阻止。
现在,如果我们使用 - BlockingBuffer.decorate(new BoundedFifoBuffer()
- 看起来它类似于ArrayBlockingQueue。
请帮助理解它们是相似还是不同,以及在什么情况下使用什么?
答案 0 :(得分:1)
ArrayBlockingQueue
是标准库,而BlockingBuffer
/ BoundedFifoBuffer
则不是。如果您没有特定原因,这将是您更喜欢ArrayBlockingQueue
的充分理由。
另一个很大的区别是Buffer
是一个集合,但不是Queue
,而ArrayBlockingQueue
是。如果您的用例是队列,则ArrayBlockingQueue
会更好,因为有些库需要Queue
。
最后,ArrayBlockingQueue
使用了更复杂的并发控制,所以如果它表现更好,我也不会感到惊讶。