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

Зачем нужен метод wait() из класса Object

Метод wait() используется для приостановки текущего потока до тех пор, пока другой поток не вызовет notify() или notifyAll() на том же объекте. Это основа механизма межпоточной синхронизации в Java.

Пример:

java
synchronized (lock) {
    while (!condition) {
        lock.wait(); // освобождает монитор и ждёт
    }
    // выполнение после пробуждения
}

Ключевые моменты:

  1. wait() всегда вызывается внутри synchronized блока
  2. При вызове поток освобождает монитор объекта
  3. После пробуждения поток снова захватывает монитор
  4. Используется в паре с notify()/notifyAll()
  5. Лучше проверять условие в цикле (spurious wakeups)

Основное применение - реализация паттернов producer-consumer, пулов потоков и других сценариев кооперативной многопоточности.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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