Установка приоритета в планировщике потоков для потоков, которые ожидали и уведомляли - PullRequest
0 голосов
/ 05 октября 2018

У меня есть серия продюсеров и потребителей.В потребительском потоке у меня есть функция lock.wait(), чтобы остановить выполнение, если в очереди нет данных.Когда данные создаются в потоке производителя, вызывается lock.notify(), и потребительский поток выходит из состояния ожидания и перемещается в планировщик потока для получения блокировки.Когда поток источника уведомлений снимает блокировку, планировщик потока выбирает случайный поток для обработки (который также может быть другим потоком производителя, но я хочу, чтобы он предоставил блокировку этому ожидаемому потоку).Моя проблема в том, есть ли способ для этих ожидающих и уведомленных потоков получить более высокий приоритет для получения блокировки в ближайшее время вместо планировщика потоков, рассматриваемого как нормальный поток.Я попытался Thread.currentthread.setPriority, и это не работает :(

1 Ответ

0 голосов
/ 05 октября 2018

Поток с самым высоким приоритетом всегда получит процессорное время, не гарантируется.JVM может иногда запускать поток с более низким приоритетом.

Проверить эту ссылку http://journals.ecs.soton.ac.uk/java/tutorial/java/threads/priority.html

...