阻塞队列的定义:队列是一种先进先出的数据结构,如果队列为空,从队列中获取元素,消费者线程会阻塞,如果队列已经满了,生产者线程就会阻塞
这里使用lock锁和condition接口实现
代码如下:
package cn.erong.blockqueue;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
* 使用数组实现阻塞队列
* @author zhouy
*
*/
public class ArrayBlockingQueue<T> {
private Lock lock = new ReentrantLock();
private Object[] item = new Object[4];
private int startIndex,endIndex,count;//初始化时,默认值为0,count 定义为队列中元素的数目
private Condition notfull = lock.newCondition();
private Condition notempty = lock.newCondition();
public void add(T t){
lock.lock();
try{
System.out.println("存放值"+t);
while(count==item.length){