ArrayBlockingQueue 和 LinkedBlockingQueue 的区别


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

ArrayBlockingQueue 和 LinkedBlockingQueue 都按照 FIFO 顺序存储元素。在这两个队列中,元素插入始终发生在队列的尾部,而元素移除始终发生在队列的头。 

序号要点ArrayBlockingQueueLinkedBlockingQueue
1
基础
它由数组支持
它由链表支持
2
有界
它是有界数组队列。因此,一旦创建,容量就不能更改
它是无界队列
3
吞吐量
它的吞吐量低于链接队列队列
链接队列的吞吐量高于基于数组的队列
4.

它使用单锁双条件算法
它有用于将元素插入队列的 putLock 和用于从队列中移除元素的 takeLock

更新日期: 2020-1-27

391 次浏览

职业生涯准备就绪

完成课程以获得认证

开始
广告
© . All rights reserved.