一、简介
二、分析
2.1 类结构
2.1.0 类结构图
2.2 内部类
2.2.0 内部类列表图
2.2.1 Itr
2.2.2 LBQSpliterator
2.2.3 Node
2.3 字段
2.3.0 字段列表图
2.3.1 capacity
-
/** * 队列的容量 */ private final int capacity;
2.3.2 count
-
/** * 队列元素的个数 原子变量 */ private final AtomicInteger count = new AtomicInteger();
2.3.3 head
/**
* 链表的头结点
*/
transient Node<E> head;
2.2.4 last
/**
* 链表的尾结点
*/
private transient Node<E> last;
2.2.5 takeLock
/**
* 队列头部取元素的独占锁,调用take方法、poll方法需要获取该锁
*/
private final ReentrantLock takeLock = new ReentrantLock();
2.2.6 notEmpty
/**
* 队列头取元素的条件,内部维护了一个条件队列, 搭配notFull使用了生产者消费者设计模式
*/
private final Condition notEmpty = takeLock.newCondition();
2.2.7 putLock
/**
* 队列头部存元素的独占锁,调用put方法、offer方法需要获取该锁
*/
private final ReentrantLock putLock = new ReentrantLock();
2.2.8 notFull
/**
* 队列头存元素的条件,内部维护了一个条件队列, 搭配notEmpty使用了生产者消费者设计模式
*/
private final Condition notFull = putLock.newCondition();
2.4 代码块
2.4.1 静态代码块
- 无
2.5 方法
2.5.0 方法列表图
2.5.1 构造函数
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/17717.html