Sobes.tech
Middle
160

Was ist der Unterschied zwischen der wait()-Methode mit Parameter und ohne Parameter?

Antwort von AI

sobes.tech KI

Метод 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();
            // Обработка прерывания
        }
    }
}