目前,我正在为我的生产者-消费者系统使用 PriorityBlockingQueue,但由于我只有 3 个不同的优先级,所以我考虑使用 3 个不同的 BlockingQueue。
这样插入元素时不需要做任何工作。
这种方法是否更有效?为什么?
最佳答案
当然,这种方式更有效,因为它的插入时间为 O(1)
,而优先级队列的插入时间为 O(log N)
。
它遵循 counting sort计算每个元素的数量并相应地输出它们的想法。计数排序还利用了所有输入元素都落入一个狭窄值范围的事实。
关于java - 使用多个队列而不是一个 PriorityQueue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21218050/