(在我们的产品中找到这段代码)
我阅读了有关 ArrayBlockingQueue 的内容,发现它是有界且阻塞的。
现在,如果我们使用 - BlockingBuffer.decorate(new BoundedFifoBuffer()
- 看起来它与 ArrayBlockingQueue 类似。
请帮助理解它们是否相似或不同以及在什么情况下使用什么?
最佳答案
ArrayBlockingQueue
是一个标准库,而 BlockingBuffer
/BoundedFifoBuffer
则不是。如果您没有特殊原因,这将是首选 ArrayBlockingQueue 的充分理由。
另一个显着的区别是 Buffer
是一个集合,而不是 Queue
,而 ArrayBlockingQueue
是。如果您的用例是队列,那么 ArrayBlockingQueue
会更好,因为有些库需要 Queue
。
最后,ArrayBlockingQueue
使用了更复杂的并发控制,因此如果它性能更好,我不会感到惊讶。
关于java - ArrayBlockingQueue v/s BlockingBuffer.decorate(new BoundedFifoBuffer(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22482835/