Планировщик использует пул потоков и приоритетную очередь? - PullRequest
4 голосов
/ 12 марта 2009

Я собираюсь реализовать планировщик, используя пул потоков и очередь приоритетов в Java, и я хочу спросить, знает ли кто-нибудь какие-либо существующие реализации или нет, поэтому я не трачу на это время: -) ...

По сути, ScheduledThreadPoolExecutor в пакете java.util.concurrent предоставляет почти все нужные мне функции, кроме «очереди с приоритетами». Поскольку я примерно проверил встроенные библиотеки Java, я не смог найти ни одной очереди приоритетов, которая бы поддерживала изменение и обновление значения «приоритет» элемента извне после того, как он был помещен в очередь.

Мне нужно, чтобы этот вид приоритетной очереди использовался в проекте, похожем на загрузчик. Я хочу, чтобы пользователи могли изменять приоритет каждой загрузки на лету, и ее позиция в очереди автоматически обновляется. ПриоритетQueue не реализован таким образом, чтобы получить правильный приоритет, каждый раз, когда мы меняем его значение приоритета, мы должны удалить и отправить его снова ...

Кто-нибудь работал над этим раньше?

Ответы [ 2 ]

4 голосов
/ 12 марта 2009

Вы можете проверить PriorityQueue или PriorityBlockingQueue . Я не думаю, что любой из них позволяет вам изменить приоритет. Но вы всегда можете удалить элемент и добавить его обратно с измененным приоритетом.

0 голосов
/ 12 марта 2009

Вы можете использовать Кварц , это полнофункциональный планировщик и поддерживает приоритеты

...