ArrayBlockingQueue 和 LinkedBlockingQueue 的区别
阻塞队列接口是 Java.util.concurrent 包的一部分。阻塞队列专门用于生产者消费者队列,还支持集合。该接口分为四部分方法,以支持可以在队列上执行的所有类型操作。它不接受 null 键。ArrayBlockingQueue 和 LinkedBlockingQueue 都实现了阻塞队列接口
ArrayBlockingQueue 和 LinkedBlockingQueue 都按照 FIFO 顺序存储元素。在这两个队列中,元素插入始终发生在队列的尾部,而元素移除始终发生在队列的头。
| 序号 | 要点 | ArrayBlockingQueue | LinkedBlockingQueue |
|---|---|---|---|
| 1 | 基础 | 它由数组支持 | 它由链表支持 |
| 2 | 有界 | 它是有界数组队列。因此,一旦创建,容量就不能更改 | 它是无界队列 |
| 3 | 吞吐量 | 它的吞吐量低于链接队列队列 | 链接队列的吞吐量高于基于数组的队列 |
| 4. | 锁 | 它使用单锁双条件算法 | 它有用于将元素插入队列的 putLock 和用于从队列中移除元素的 takeLock |
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP