Встречается на собеседованиях • сегодня
Что такое notifyAll
notifyAll() — это метод класса Object, который пробуждает все потоки, ожидающие на мониторе этого объекта. В отличие от notify(), который разблокирует только один случайный поток, notifyAll() гарантирует, что все ожидающие потоки получат уведомление.
Пример:
java
synchronized (lock) {
lock.notifyAll(); // Будит все потоки, ждущие на lock
}Нюансы:
- Потоки конкурируют за монитор после вызова
notifyAll(). - Используется, когда нужно разбудить несколько потоков, например, при изменении общего состояния.
- Если потоки ждут разных условий, после
notifyAll()они должны проверить условие в циклеwhile:
java
while (!condition) {
lock.wait();
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы