ArrayBlockingQueue和LinkedBlockingQueue之间的区别是什么?
阻塞队列接口是Java.util.concurrent包的一部分。阻塞队列专为生产者消费者队列设计,同时支持集合。该接口分为四个部分的方法,支持对队列执行的所有类型的操作。它不接受空键。ArrayBlockingQueue和LinkedBlockingQueue都实现了阻塞队列接口
ArrayBlockingQueue和LinkedBlockingQueue都按照FIFO顺序存储元素。在这两个队列中,元素的插入总是发生在队列的尾部,元素的删除总是发生在队列的头部。
序号 | 键 | ArrayBlockingQueue | LinkedBlockingQueue |
---|---|---|---|
1 | 基本 | 它由数组支持 | 它由链表支持 |
2 | 有界 | 它是有界数组队列。因此一旦创建,容量不能更改 | 它是无界队列 |
3 | 吞吐量 | 它的吞吐量低于链式队列 | 链式队列的吞吐量高于基于数组的队列 |
4. | 锁 | 它使用单锁双条件算法 | 它具有用于在队列中插入元素的putLock和用于从队列中删除元素的takeLock |
以上就是ArrayBlockingQueue和LinkedBlockingQueue之间的区别是什么?的详细内容,更多请关注其它相关文章!