PriorityBlockingQueue是Java并发包中独具特色的线程安全优先级队列,兼具无界队列特性和阻塞操作能力。下面我们将深入解析其核心实现机制。
PriorityBlockingQueue的特性解析
与常规的LinkedBlockingQueue和ArrayBlockingQueue不同,PriorityBlockingQueue采用优先级排序而非FIFO原则处理元素。这意味着存入队列的元素必须实现Comparable接口,或者在构造函数中提供Comparator比较器。
核心数据结构剖析
private static final int DEFAULT_INITIAL_CAPACITY = 11;private transient Object[] queue;private transient int size;private transient Comparator