LinkedBlockingQueue

903 阅读1分钟

【写在前面】 所谓读源码,三分看代码,七分看注释。英语不好怎么办,我帮你翻译!

package java.util.concurrent 
public class LinkedBlockingQueue<E>
extends AbstractQueue<E>
implements BlockingQueue<E>, java.io.Serializable

一个基于linked nodes(下称:链表)的边界可选(译者注:也就是容量可以设置,也可以不设置)的阻塞队列。这个队列基于FIFO(先进先出)原则进行排序。这个队列的头节点就是在队列中呆了最久的一个元素。(同理)这个队列的尾结点就是在队列中停留时间最短的元素。新的元素将会插入到队列的尾部,这个队列的获取(元素)操作将会获取队列的头结点。(基于)链表的队列通常比(基于)数组的队列有着更高的吞吐量,但是运用在多线程应用程序中的性能更加难以预测。(译者注:链表队列能放置的元素更多,所以吞吐量更大。而后半句意思是在多线程中链表中元素数量难以预测,如果数量大了,自然性能下降,因此性能难以预测)。

可选容量边界的构造方法的参数作为防止队列过度扩容的一种方法。(队列的)容量,如果未指定,那么相当于设置为Integer的最大值(译者注:2^31-1 = 21亿4748万3647)。链表的节点会在每次插入的时候动态地创建,除非这次插入会导致队列(元素)超过规定容量。

这个类和它的迭代器实现了 CollectionIterator接口的所有可选方法.

这个类是Java Collections Framework的一员。

Since:1.5