Как java поток будет работать в следующем сценарии? - PullRequest
1 голос
/ 01 февраля 2020

Предположим, что в многопоточной среде есть 5 потоков t1, t2, t3, t4, t5 .... Поток t1, t2, t3, t4 вызывает метод wait () (внутри синхронизированного блока) и только вызовы потока t5 затем метод notify (), какой поток получит приоритет, чтобы снова получить блокировку в критической секции.

1 Ответ

1 голос
/ 01 февраля 2020

Выбор произвольный, и любой из 4 потоков может быть разбужен. Блокировка intrinsi c в java не справедлива, поэтому некоторые ожидающие потоки будут ждать дольше, чем другие, даже если они попытались сначала получить блокировку. ReentrantLock может использоваться для предоставления доступа к самому длинному ожидающему потоку, если это имеет значение для вашей программы.

...