特点 容量最大值 Integer.MAX_VALUE - 8。 基于ReentrantLock 实现并发安全, 基于 Condition 实现线程等待唤醒。 数据底层存放在居于数组实现的二叉堆上, 注意这里没有实现堆排序, 只是每次有数据变更时将最小/大放在了堆的最上面的节点上。