Назад к вопросам
Middle
67
questionbank
В чем отличие работы метода wait() с параметром от работы без параметра?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Метод wait() с параметром указывает максимальное время ожидания в миллисекундах. По истечении этого времени поток автоматически пробуждается, даже если условие не выполнилось и метод notify() или notifyAll() не был вызван.
Метод wait() без параметра ожидает неограниченное время, пока не будет вызван notify() или notifyAll() для объекта, на котором был вызван wait().
| Метод | Параметры | Описание |
|---|---|---|
wait() |
Отсутствуют | Ожидает до вызова notify() или notifyAll(). |
wait(long m) |
m (миллисекунды) | Ожидает максимум m миллисекунд или до вызова notify()/notifyAll(). |
Пример использования wait(long m):
synchronized (lockObject) {
while (conditionIsNotMet) {
try {
lockObject.wait(5000); // Ждать до 5 секунд
if (conditionIsNotMet) {
// Время ожидания истекло, условие не выполнилось
System.out.println("Время ожидания истекло.");
break; // Выходим из цикла или предпринимаем другие действия
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
// Обработка прерывания
}
}
}