Метод wait() объекта в Java применяется в многопоточном программировании для организации координации между потоками. Он заставляет текущий поток приостановить выполнение и освободить монитор объекта, на котором вызван метод, до тех пор, пока другой поток не вызовет notify() или notifyAll() на том же объекте.
Можете привести пример, когда применяется метод wait() объекта в Java?
Метод wait() объекта в Java применяется в многопоточном программировании для организации координации между потоками.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Метод wait() объекта в Java применяется в многопоточном программировании для организации координации между потоками. Он заставляет текущий поток приостановить выполнение и освободить монитор объекта, на котором вызван метод, до тех пор, пока другой поток не вызовет notify() или notifyAll() на том же объекте.
Пример:
synchronized (sharedObject) {
while (!condition) {
sharedObject.wait(); // поток ждет, пока condition не станет true
}
// выполняется после пробуждения
}
Здесь поток ждет, пока не выполнится некоторое условие, освобождая монитор для других потоков. Другой поток, изменив состояние и вызвав notify(), пробуждает ожидающий поток.
Это важно для реализации правильной синхронизации и избежания активного ожидания (busy-waiting).