Встречается на собеседованиях • сегодня
Зачем нужен метод notifyAll() из класса Object
Метод notifyAll() используется для пробуждения всех потоков, ожидающих на мониторе объекта. В отличие от notify(), который разблокирует только один случайный поток, notifyAll() гарантирует, что все ожидающие потоки получат уведомление.
Пример:
java
synchronized (lock) {
lock.notifyAll(); // Все потоки, ждущие lock, будут разбужены
}Используется, когда:
- Несколько потоков ожидают одного условия, и нужно разбудить их всех.
- Приоритеты потоков неизвестны, и важно, чтобы каждый получил шанс на выполнение.
- В сложных сценариях синхронизации, где
notify()может привести к deadlock.
Важно: после вызова notifyAll() потоки всё равно должны перепроверять условие, так как состояние могло измениться до получения монитора.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы