Активное ожидание происходит, когда поток постоянно крутится в цикле, проверяя условие, и зря жрёт ресурсы процессора. Это неэффективно и палит производительность системы.
Самый простой способ избежать активного ожидания в Java — использовать метод Thread.sleep() из класса java.lang.Thread. Этот метод на время приостанавливает выполнение текущего потока на указанную длительность.
try {
Thread.sleep(1000); // Спим 1 секунду
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
Метод sleep() выбрасывает InterruptedException, поэтому его надо обернуть в блок try-catch. Всегда обрабатывай это исключение корректно, чтобы твой поток правильно реагировал на запросы на прерывание.
Для более сложных сценариев синхронизации смотри на альтернативные подходы типа Object.wait(), Condition.await() или утилиты для многопоточности из пакета java.util.concurrent для более продвинутой координации потоков.
Метод Thread.sleep() принимает длительность сна в виде параметра в миллисекундах и освобождает ресурсы CPU, пока поток приостановлен.
Новый — ещё не проверен сообществом
Вы