调度程序使用线程池&优先级队列?

时间:2009-03-12 09:45:18

标签: java threadpool priority-queue

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

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

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

之前有人为此工作吗?

2 个答案:

答案 0 :(得分:4)

您可以查看PriorityQueuePriorityBlockingQueue。我认为其中任何一个都不允许您修改优先级。但是您可以随时删除元素并将其添加回修改后的优先级。

答案 1 :(得分:0)

您可以使用Quartz,它是一个功能齐全的调度程序并支持priorities