Назад к вопросам
Junior
74
questionbank
Что означает 'усыпить' поток в Java?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Приостановить выполнение текущего потока на определенный промежуток времени с помощью метода Thread.sleep().
// Пример использования Thread.sleep
try {
Thread.sleep(1000); // Приостановка выполнения потока на 1000 миллисекунд (1 секунда)
} catch (InterruptedException e) {
Thread.currentThread().interrupt(); // Восстанавливаем флаг прерывания
}
Ключевые моменты:
Thread.sleep(long millis)/Thread.sleep(long millis, int nanos): Статический метод классаThread.- Перевод в состояние
TIMED_WAITING: Поток, вызывающийsleep(), переходит в состояниеTIMED_WAITINGи не потребляет процессорное время. - Гарнитурный таймер: Реализация зависит от операционной системы, время сна не гарантируется точно.
- Не освобождает мониторы: Если поток владеет монитором, он его не освобождает при вызове
sleep(). - Прерывание: Метод
sleep()может быть прерван вызовомinterrupt()на спящем потоке, что вызоветInterruptedException.
Это позволяет управлять выполнением потоков и предоставлять время другим потокам.