队列(queue)基本就是一个先进先出(FIFO)的数据结构。jdk自带的queue大致如下:
![](/Java集合/数据结构之Queue/queue.png)
可以看出队列大致分为:
- 非阻塞队列
AbstractQueue
- 阻塞队列
BlockingQueue
- 双端队列
Deque
非阻塞队列
1 | public interface Queue<E> extends Collection<E> { |
阻塞队列
BlockingQueue
是所有阻塞队列的顶级接口,定义了一批方法规范
操作 | 抛异常 | 返回特定值 | 阻塞 | 超时 |
---|---|---|---|---|
入队 | add(e) | offer(e)->false | put(e) | offer(e,timeout,unit) |
出队 | remove() | poll()->null | take() | poll(timeout,unit) |
检查 | element() | peek()->null | - | - |
1 |
相关Queue源码解析: