继承自java.util.Queue,提供了等待的操作,当插入数据到一个满队列或获取数据从一个空队列的时候。
与之对应的有四种处理方式
- 抛出异常
- 特殊值返回(null or false)
- 阻塞等待
- 限时等待
| 操作类型 |抛出异常 | 特殊值返回 |阻塞 | 超时|
| :-------- | :--------| :-------- | :--------|
| 插入 | add(e) | offer(e) | put(e) | offer(e, time, unit)|
|删除 | remove() | poll() | take() | poll(time, unit)|
| 检查 | element() |peek()|not applicable| not applicable|
BlockingQueue具备如下几个特点:
- 不接受null
- 它的实现主要被用来作为生产者消费者使用
- 它的实现是线程安全的