我将使用线程池和放大器来实现一个调度程序. Java中的优先级队列我想问是否有人知道任何现有的实现,所以我没有花时间在它上面: – )…
基本上,java.util.concurrent包中的ScheduledThreadPoolExecutor提供了除“优先级队列”之外的几乎所需的功能.当我粗略检查内置的java库时,我找不到任何支持修改&的优先级队列.在将元素放入队列后从外部更新元素的“优先级”值.
我需要这种优先级队列用于下载器喜欢的项目.我希望允许用户即时修改每个下载的优先级,并自动更新其在队列中的位置. PriorityQueue没有以这种方式实现,为了获得正确的优先级,每次我们更改其优先级值时,我们必须删除&再次提交……
以前有人为此工作吗?
解决方法:
您可以检查PriorityQueue或PriorityBlockingQueue.我认为其中任何一个都不允许您修改优先级.但您始终可以删除元素并使用修改后的优先级将其添加回来.