Sobes.tech
Назад к вопросам
Junior — Middle
65

В чем заключается назначение метода wait в классе Object?

Компании, где спрашивали
OZONOZON

Ответ от нейросети

sobes.tech AI

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

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

Пример использования:

synchronized (sharedObject) {
    while (!condition) {
        sharedObject.wait(); // поток ждет, пока condition не станет true
    }
    // выполнение после пробуждения
}

Важно, что wait() должен вызываться внутри блока synchronized, иначе будет выброшено исключение IllegalMonitorStateException.