本文介绍了ArrayBlockingQueue和LinkedBlockingQueue之间有什么区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
- 使用ArrayBlockingQueue更好的情况是什么?使用LinkedBlockingQueue什么时候更好?
- 如果LinkedBlockingQueue默认容量等于MAX Integer,将它用作具有默认容量的BlockingQueue真的很有帮助吗?
推荐答案
ArrayBlockingQueue
支持一个大小在创建后永远不会改变的数组。将容量设置为 Integer.MAX_VALUE
将创建一个空间成本较高的大型阵列。
ArrayBlockingQueue
总是受限制。
ArrayBlockingQueue
is backed by an array that size will never change after creation. Setting the capacity to Integer.MAX_VALUE
would create a big array with high costs in space.ArrayBlockingQueue
is always bounded.
LinkedBlockingQueue
动态创建节点,直到达到容量
。默认情况下,这是 Integer.MAX_VALUE
。使用这么大的容量在空间上没有额外的成本。
LinkedBlockingQueue
可选择受限制。
LinkedBlockingQueue
creates nodes dynamically until the capacity
is reached. This is by default Integer.MAX_VALUE
. Using such a big capacity has no extra costs in space.LinkedBlockingQueue
is optionally bounded.
这篇关于ArrayBlockingQueue和LinkedBlockingQueue之间有什么区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!