java – 使用线程池和优先级队列的调度程序?

我将使用线程池和放大器来实现一个调度程序. Java中的优先级队列我想问是否有人知道任何现有的实现,所以我没有花时间在它上面: – )…

基本上,java.util.concurrent包中的ScheduledThreadPoolExecutor提供了除“优先级队列”之外的几乎所需的功能.当我粗略检查内置的java库时,我找不到任何支持修改&的优先级队列.在将元素放入队列后从外部更新元素的“优先级”值.

我需要这种优先级队列用于下载器喜欢的项目.我希望允许用户即时修改每个下载的优先级,并自动更新其在队列中的位置. PriorityQueue没有以这种方式实现,为了获得正确的优先级,每次我们更改其优先级值时,我们必须删除&再次提交……

以前有人为此工作吗?

解决方法:

您可以检查PriorityQueuePriorityBlockingQueue.我认为其中任何一个都不允许您修改优先级.但您始终可以删除元素并使用修改后的优先级将其添加回来.

上一篇:java – 什么时候在ThreadPoolExecutor中指定单独的核心和最大池大小是一个好主意?


下一篇:java – Spring 3为ThreadPoolTask​​Executor设置ThreadFactory