1、阻塞队列
方法/处理方式 | 抛出异常 | 返回特殊值 | 一直阻塞 | 超时退出 |
插入方法 | add(e) | offer(e) | put(e) | offer(e, time, unit) |
移除方法 | remove(e) | poll() | take() | poll(time, unit) |
检查方法 | element() | peek() | 不可以 | 不可以 |
2、示例代码
public class BlockQueue {
public static void main(String[] args) {
/**
* 数组结构组成的有界阻塞队列
*/
ArrayBlockingQueue<Integer> arrayBlockingQueue = new ArrayBlockingQueue<>(5);
/**
* 链表结构组成的有界阻塞队列
*/
LinkedBlockingQueue<Integer> linkedBlockingQueue = new LinkedBlockingQueue<>();
/**
* 支持优先级排序的有界阻塞队列
*/
PriorityBlockingQueue<Integer> priorityBlockingQueue = new PriorityBlockingQueue<>();
/**
* 使用优先级队列实现的无界阻塞队列
*/
DelayQueue delayQueue = new DelayQueue<>();
/**
* 不存储元素的阻塞队列
*/
SynchronousQueue<Integer> synchronizedQueue = new SynchronousQueue<>();
/**
* 链表结构组成的无界阻塞队列
*/
LinkedTransferQueue<Integer> linkedTransferQueue = new LinkedTransferQueue<>();
/**
* 链表结构组成的双向阻塞队列
*/
LinkedBlockingDeque<Integer> linkedBlockingDeque = new LinkedBlockingDeque<>();
}
}