Sobes.tech
Middle
171

Wat is het verschil tussen de wait() methode met parameter en zonder parameter?

Antwoord van AI

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