基于链接节点的可选绑定的阻塞队列。此队列对元素FIFO(先进先出)进行排序。队列的开头是已在队列中停留最长时间的元素。
队列的尾部是最短时间出现在队列中的元素。新元素插入到队列的尾部,并且队列检索操作在队列的开头获取元素。
链接队列通常比基于阵列的队列具有更高的吞吐量,但是在大多数并发应用程序中,可预测的性能较差。
可选的容量绑定构造函数参数用作防止队列过度扩展的一种方法。容量(如果未指定)等于Integer.MAX_VALUE。
除非每次插入都会使队列超出容量,否则将在每次插入时动态创建链接节点。
常用方法
put 插入指定元素到队尾,满则等待有空间变为可用
take 获取并溢出队列头,如果是空等待直到有一个元素可用
/test LinkedBlockingQueue
LinkedBlockingQueue<String> TestQueue =
new LinkedBlockingQueue<String>(5);
for (int i = 0; i < 5; i++) {
try {
TestQueue.put("Q"+i);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for (int i = 0; i < 5; i++) {
try {
System.out.println(TestQueue.take());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}