ArrayBlockingQueue

284 阅读1分钟

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

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

一个基于数组的有界阻塞队列,这个队列的元素基于FIFO(先进先出)原则排序。头结点是待在队列中最久的元素。(同理)尾结点是队列中停留时间最短的元素。新原素会插入在队列的尾部,队列的获取操作是获取队列的头部元素。

这是一个经典的“有界缓冲区”,缓冲区内持有的元素的插入来自于生产者,提取来自于消费者。一但创建好,容量就不能变化了。尝试放置一个元素到已经满的队列中会导致阻塞,尝试从一个空的队列获取元素同样也会导致阻塞。

这个类支持可选择的公平策略,对于等待的生产者和消费者线程。默认情况下,排序不能保证,然而,队列的一个构造方法将公平策略设置为true的话,就授予按照FIFO的顺序进行访问。公平通常会减少吞吐量,但是能降低不确定性和防止饥饿。

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

这个类是Java Collections Framework中的一员。

Since:1.5