Java核心复习——J.U.C ArrayBlockingQueue源码分析
2020-01-14 18:59
816 查看
介绍
依赖关系
源码
构造方法
public ArrayBlockingQueue(int capacity) {
this(capacity, false);//默认构造非公平的有界队列
}
public ArrayBlockingQueue(int capacity,//指定队列大小
boolean fair,//指定是否使用公平锁
Collection<? extends E> c//指定初始化时加入集合
) {
this(capacity, fair);
//初始化ReentrantLock重入锁
final ReentrantLock lock = this.lock;
lock.lock(); // Lock only for visibility, not mutual exclusion
try {
int i = 0;
try {
for (E e : c) {
checkNotNull(e);
items[i++] = e;
}
} catch (ArrayIndexOutOfBoundsException ex) {
throw new IllegalArgumentException();
}
count = i;
putIndex = (i == capacity) ? 0 : i;
} finally {
lock.unlock();
}
}
[/code]
参考文档
转载于:https://www.cnblogs.com/fonxian/p/10867612.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- java阻塞队列ArrayBlockingQueue源码分析
- JDK源码分析之主要阻塞队列实现类ArrayBlockingQueue -- java消息队列/java并发编程/阻塞队列
- java多线程系列(九)---ArrayBlockingQueue源码分析
- java多线程系列(九)---ArrayBlockingQueue源码分析
- Java多线程 -- JUC包源码分析5 -- Condition/ArrayBlockingQueue/LinkedBlockingQueue/Deque/PriorityBlockingQueue
- Java 容器源码分析之ArrayBlockingQueue和LinkedBlockingQueue
- Java多线程 -- JUC包源码分析5 -- Condition/ArrayBlockingQueue/LinkedBlockingQueue/Deque/PriorityBlockingQueu
- 死磕 java集合之ArrayBlockingQueue源码分析
- 并发编程(八)—— Java 并发队列 BlockingQueue 实现之 ArrayBlockingQueue 源码分析
- Java 并发 --- 阻塞队列之ArrayBlockingQueue源码分析
- java多线程系列(九)---ArrayBlockingQueue源码分析
- Java concurrent Framework并发容器之ArrayBlockingQueue(1.6)源码分析
- jdk 源码分析(11)java ArrayBlockingQueue 缓存队列分析
- ArrayBlockingQueue源码分析
- Java集合源码学习(16)_BlockingQueue接口的实现ArrayBlockingQueue
- JDK源码分析—— ArrayBlockingQueue 和 LinkedBlockingQueue
- ArrayBlockingQueue源码分析
- JDK源码分析—— ArrayBlockingQueue 和 LinkedBlockingQueue
- JDK源码分析-ArrayBlockingQueue
- Java LinkedBlockingQueue和ArrayBlockingQueue分析