ArrayBlockingQueue和LinkedBlockingQueue之间的区别

阻塞队列接口是Java.util.concurrent包的一部分。阻塞队列是专门为生产者使用者队列设计的,还支持收集。该接口分为方法的四个部分,以支持可以在队列上执行的所有类型的操作。它不接受空键。ArrayBlockingQueue和LinkedBlockingQueue都实现了Blocking队列接口

ArrayBlockingQueue和LinkedBlockingQueue都以FIFO顺序存储元素。在两个队列中,元素的插入总是发生在队列的尾部,元素的去除总是从队列的开头发生。  

序号ArrayBlockingQueueLinkedBlockingQueue
1
基本的
它由数组支持
它由链接列表支持
2
有界
它是有界数组队列。因此,一旦创建,容量将无法更改
它是无限队列
3
通量
它的吞吐量比链接队列队列低
链接队列比基于阵列的队列具有更高的吞吐量
4。

它使用单锁双条件算法
它具有putLock用于在队列中插入元素,以及takeLock用于从队列中删除元素