Sobes.tech
Middle
177

wait() metodunun parametreli ve parametresiz çalışması arasındaki fark nedir?

AI'dan gelen yanıt

sobes.tech yapay zeka

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