Java ArrayBlockingQueue v/s BlockingBuffer.decoration(新的BoundedFifoBuffer()

Java ArrayBlockingQueue v/s BlockingBuffer.decoration(新的BoundedFifoBuffer(),java,collections,concurrency,Java,Collections,Concurrency,(在我们的产品中发现此代码图片) 我阅读了关于ArrayBlockingQueue的文章,发现它是有界和阻塞的。 现在,如果我们使用-BlockingBuffer.decoration(new BoundedFifoBuffer()),它看起来类似于ArrayBlockingQueue 请帮助理解它们是否相似或不同,以及在什么情况下使用什么?ArrayBlockingQueue是标准库,而BlockingBuffer/BoundedFifoBuffer不是。如果您没有特定的原因,这将是选择Arr

(在我们的产品中发现此代码图片)

我阅读了关于ArrayBlockingQueue的文章,发现它是有界和阻塞的。 现在,如果我们使用-BlockingBuffer.decoration(new BoundedFifoBuffer()),它看起来类似于ArrayBlockingQueue


请帮助理解它们是否相似或不同,以及在什么情况下使用什么?

ArrayBlockingQueue
是标准库,而
BlockingBuffer
/
BoundedFifoBuffer
不是。如果您没有特定的原因,这将是选择
ArrayBlockingQueue
的充分理由n

另一个明显的区别是,
缓冲区
是一个集合,而不是
队列
,而
ArrayBlockingQueue
是。如果您的用例是一个队列,那么
ArrayBlockingQueue
会更好,因为有些库需要
队列


最后,
ArrayBlockingQueue
使用了更复杂的并发控制,因此如果它性能更好,我不会感到惊讶。

?谢谢!在Qs.Fifo中的粘贴代码中已经指定了(类似队列的行为),这意味着ArrayBlockingQueue应该优先于BlockingBuffer/BoundedFifoBuffer。对吗?我认为除非代码使用仅在缓冲区中可用的操作,否则您应该更喜欢ArrayBlockingQueue