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