Java核心复习——J.U.C ArrayBlockingQueue源码分析

介绍

依赖关系

Java核心复习——J.U.C  ArrayBlockingQueue源码分析

源码

构造方法


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();
}
}

参考文档

10.并发包阻塞队列之ArrayBlockingQueue

上一篇:通过VM虚拟机安装Ubuntu server部署flask项目


下一篇:Java核心复习——J.U.C LinkedBlockingQueue源码分析