SynchronousQueue的介绍
SynchronousQueue是一个优先级队列,不满足先进先出FIFO的概念。
会将插入的数据进行排序,输出排序之后的结果(小根堆,由小变大升序)
内部实现原理介绍
- SynchronousQueue是基于二叉堆结构实现的。
- SynchronousQueue同时还是基于数组实现的二叉堆结构。
二叉堆概念介绍
- 百度百科的介绍
二叉堆是一种特殊的堆,二叉堆是完全二元树(二叉树)或者是近似完全二元树(二叉树)。二叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。
PriorityBlockingQueue核心属性的分析
PriorityBlockingQueue的生产操作
- add方法还是封装了offer方法。所以对offer方法进行分析
- offer中的扩容操作分析
offer添加数据如何保证二叉堆(小根堆结构)
- siftUpComparable(n, e, array);方法分析
PriorityBlockingQueue的消费者操作
- poll方法分析
- poll带时间参数的方法分析
- take方法分析