阻塞队列

阻塞队列

队列描述描述
名称 描述
LinkedBlockingQueue 一种容量没有上边界的阻塞队列,亦可指定最大容量
LinkedBlockingDeque 一种双端队列版本
ArrayBlockingQueue 一种在构造时需要指定容量,并且有一个可选的参数来指定是否需要公平性
PriorityBlockingQueue 一种带优先级的队列
DelayQueue 一种延迟阻塞队列【可实现如下单后三十分钟内没有付款就自动取消订单的操作】
TransferQueue 一种等待消费者准备就绪才可接收的阻塞队列,如果调用transfer那么会阻塞,直到另一个线程将其取出
阻塞队列通用方法
方法 动作 特殊情况
add 添加一个元素 如果队列满, 则抛出IllegalStateException 异常
element 返回队列头元素 如果队列空,抛出NoSuchElementException 异常
offer 添加一个元素并返回true 如果队列满, 返回false
peek 返回队列头元素 如果队列空, 则返回null
poll 移除并返回队列的头元素 如果队列空, 则返回null
put 添加一个元素 如果队列满, 则阻塞
remove 移出并返回头元素 如果队列空, 则抛出NoSuchElementException 异常
take 移出并返回头元素 如果队列空, 则阻塞