资料内容:
1. 阻塞队列介绍
1.1 队列
是限定在一端进行插入,另一端进行删除的特殊线性表。
先进先出(FIFO)线性表。
允许出队的一端称为队头,允许入队的一端称为队尾。
Queue接口
1 public interface Queue<E> extends Collection<E> {
2 //添加一个元素,添加成功返回true, 如果队列满了,就会抛出异常
3 boolean add(E e);
4 //添加一个元素,添加成功返回true, 如果队列满了,返回false
5 boolean offer(E e);
6 //返回并删除队首元素,队列为空则抛出异常
7 E remove();
8 //返回并删除队首元素,队列为空则返回null
9 E poll();
10 //返回队首元素,但不移除,队列为空则抛出异常
11 E element();
12 //获取队首元素,但不移除,队列为空则返回null
13 E peek();
14 }
1.2 阻塞队列
阻塞队列 (BlockingQueue)是Java util.concurrent包下重要的数据结构,BlockingQueue提供了线程
安全的队列访问方式:当阻塞队列插入数据时,如果队列已满,线程将会阻塞等待直到队列非满;从阻塞队列取数据时,如果队列已空,线程将会阻塞等待直到队列非空。并发包下很多高级同步类的实
现都是基于BlockingQueue实现的。