ArrayBlockingQueue是个有数组支持的有界的阻塞队列。该队列按照先进先出FIFO的原理对元素排序,插入新元素市场队列的尾部,获取新元素是操作队列的开始处。一旦见了建立了缓存区,就不能再增加其容量,试图从已满的队列中方式元素会导致操作阻塞;试图从空的队列中提取元素将导致阻塞。
提拱了四种方法,只有put(),take()才会发生阻塞。
下面是阻塞队列的例子。
package andy.thread.test;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
/**
* @author Zhang,Tianyou
* @version 2014年11月9日 下午5:29:28
*/
public class BlockingQueueTest {
public static void main(String[] args) {
final int CAPACITY = 3;
BlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(CAPACITY);
for (int i = 0; i < 2; i++) {
new Thread() {
public void ru