Встречается на собеседованиях • сегодня

Что такое notifyAll

notifyAll() — это метод класса Object, который пробуждает все потоки, ожидающие на мониторе этого объекта. В отличие от notify(), который разблокирует только один случайный поток, notifyAll() гарантирует, что все ожидающие потоки получат уведомление.

Пример:

java
synchronized (lock) {
    lock.notifyAll(); // Будит все потоки, ждущие на lock
}

Нюансы:

  • Потоки конкурируют за монитор после вызова notifyAll().
  • Используется, когда нужно разбудить несколько потоков, например, при изменении общего состояния.
  • Если потоки ждут разных условий, после notifyAll() они должны проверить условие в цикле while:
java
while (!condition) {
    lock.wait();
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы