Если один Googles для "разницы между notify()
и notifyAll()
", тогда появится много объяснений (не считая абзацев javadoc). Все это сводится к тому, что количество ожидающих потоков пробуждается: один в notify()
и все в notifyAll()
.
Однако (если я правильно понимаю разницу между этими методами), для дальнейшего наблюдения за монитором всегда выбирается только один поток; в первом случае - тот, который выбран виртуальной машиной, во втором случае - тот, который выбран планировщиком системных потоков. Точные процедуры выбора для обоих из них (в общем случае) не известны программисту.
Какая полезная разница между notify() и notifyAll(), то? Я что-то пропустил?