ArrayBlockingQueue和LinkedBlockingQueue之间的区别
本文向大家介绍ArrayBlockingQueue和LinkedBlockingQueue之间的区别,包括了ArrayBlockingQueue和LinkedBlockingQueue之间的区别的使用技巧和注意事项,需要的朋友参考一下
阻塞队列接口是Java.util.concurrent包的一部分。阻塞队列是专门为生产者使用者队列设计的,还支持收集。该接口分为方法的四个部分,以支持可以在队列上执行的所有类型的操作。它不接受空键。ArrayBlockingQueue和LinkedBlockingQueue都实现了Blocking队列接口
ArrayBlockingQueue和LinkedBlockingQueue都以FIFO顺序存储元素。在两个队列中,元素的插入总是发生在队列的尾部,元素的去除总是从队列的开头发生。
序号 | 键 | ArrayBlockingQueue | LinkedBlockingQueue |
---|---|---|---|
1 |
基本的 |
它由数组支持 |
它由链接列表支持 |
2 |
有界 |
它是有界数组队列。因此,一旦创建,容量将无法更改 |
它是无限队列 |
3 |
通量 |
它的吞吐量比链接队列队列低 |
链接队列比基于阵列的队列具有更高的吞吐量 |
4。 |
锁 |
它使用单锁双条件算法 |
它具有putLock用于在队列中插入元素,以及takeLock用于从队列中删除元素 |