LinkedBlockingQueue 是阻塞式的无界队列
构造函数,初始化capacity为int最大值,创建头尾节点
public LinkedBlockingQueue() {
this(Integer.MAX_VALUE);
}
public LinkedBlockingQueue(int capacity) {
if (capacity <= 0) throw new IllegalArgumentException();
this.capacity = capacity;
last = head = new Node<E>(null);
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
计算当前还能容纳多少元素,其中capacity是容量上限,count是原子整形,代表当前元素数量
public int remainingCapacity() {
return capacity - count.get();
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
插入元素,阻塞等待,直到插入成功
public void put