简介
BlockingQueue 是一个接口,字义上理解表示为一个阻塞队列
1 生产者入队
2 消费者出队
BlockingQueue 具有 4 组不同的方法用于插入、移除以及对队列中的元素进行检查。如果请求的操作不能得到立即执行的话,每个方法的表现也不同。这些方法如下:
抛异常 特定值 阻塞 超时
四组不同的行为方式解释:
抛异常:如果试图的操作无法立即执行,抛一个异常。
特定值:如果试图的操作无法立即执行,返回一个特定的值(常常是 true / false)。
阻塞:如果试图的操作无法立即执行,该方法调用将会发生阻塞,直到能够执行。
超时:如果试图的操作无法立即执行,该方法调用将会发生阻塞,直到能够执行,但等待时间不会
BlockingQueue 的实现
BlockingQueue 是个接口,你需要使用它的实现之一来使用 BlockingQueue;
1 ArrayBlockingQueue 数组阻塞队列
2 PriorityBlockingQueue 具有优先级的阻塞队列
3 DelayQueue 延迟队列
4 LinkedBlockingQueue 链阻塞队列
5 SynchronousQueue 同步队列
6 BlockingDeque 阻塞双端队列
7 LinkedBlockingDeque 链阻塞双端队列