队列是一种先进先出的数据结构
非阻塞队列
PriorityQueue优先级队列:线程不安全、基于数组存储构成优先级堆 添加元素为空抛出异常 每次操作,对元素进行排序,取优先级最高的元素放在队首,保证获取的元素按优先级从高到低
siftUpUsingComparator与siftDownUsingComparator !!!!!
add、offer 添加元素 peek(获取元素不删除)、poll(获取元素并删除)
ConcurrentLinkedQueue:基于链表存储、线程安全
阻塞队列
在获取元素(take)时,若为空,阻塞当前线程(Lock condition的await),当添加值进去后释放(signal)
ArrayBlockingQueue :一个由数组支持的有界队列。 LinkedBlockingQueue :一个由链接节点支持的可选有界队列。 PriorityBlockingQueue :一个由优先级堆支持的无界优先级队列。 DelayQueue :一个由优先级堆支持的、基于时间的调度队列。
双向队列
可以向头跟尾放入与取出元素
ArrayDeque双向队列 基于数据 线程不安全\ LinkedList基于链表
前两者属于单向队列,队尾添加元素,队头取出元素