您的位置:首页 > 编程语言 > Java开发

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]

参考文档

10.并发包阻塞队列之ArrayBlockingQueue

转载于:https://www.cnblogs.com/fonxian/p/10867612.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
a5678110 发布了0 篇原创文章 · 获赞 0 · 访问量 523 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: