1.4Kпросмотров
26.1%от подписчиков
18 февраля 2026 г.
questionScore: 1.6K
👩💻 Что такое Thread.sleep() и зачем он нужен? Thread.sleep() — это статический метод класса java.lang.Thread, который приостанавливает выполнение текущего потока на указанное количество миллисекунд или наносекунд. java
public class ThreadSleepExample { public static void main(String[] args) { System.out.println("Демонстрация Thread.sleep()"); // Простая задержка System.out.println("Начало работы"); try { Thread.sleep(2000); // Пауза 2 секунды } catch (InterruptedException e) { Thread.currentThread().interrupt(); System.out.println("Поток был прерван"); } System.out.println("Прошло 2 секунды"); // Создание анимации загрузки System.out.print("Загрузка"); for (int i = 0; i < 5; i++) { try { Thread.sleep(500); // Полсекунды между точками System.out.print("."); } catch (InterruptedException e) { break; } } System.out.println(" Готово!"); // Имитация таймера for (int seconds = 3; seconds > 0; seconds--) { System.out.println("Осталось: " + seconds + " сек"); try { Thread.sleep(1000); // Пауза 1 секунда } catch (InterruptedException e) { System.out.println("Таймер прерван"); break; } } System.out.println("Время вышло!"); // Пример с перехватом прерывания Thread countingThread = new Thread(() -> { for (int i = 1; i <= 10; i++) { System.out.println("Считаем: " + i); try { Thread.sleep(1000); } catch (InterruptedException e) { System.out.println("Поток прервали на счете " + i); return; // Выходим из метода run() } } }); countingThread.start(); // Даем потоку посчитать до 3, потом прерываем try { Thread.sleep(3500); countingThread.interrupt(); // Прерываем поток } catch (InterruptedException e) { // Игнорируем } }
} Особенности: · Выбрасывает InterruptedException — checked exception
· Точность задержки зависит от операционной системы
· Приостанавливает только текущий поток
· После пробуждения поток переходит в состояние Runnable Для чего особенно полезен: · Создание задержек в UI анимациях
· Имитация длительных операций при тестировании
· Управление частотой выполнения в циклах
· Простая синхронизация потоков во времени
· Реализация тайм-аутов и ожидания
· Демонстрация многопоточности в учебных примерах Важные замечания: } catch (InterruptedException e) { Thread.currentThread().interrupt(); System.out.println("Поток был прерван"); } System.out.println("Прошло 2 секунды"); // Создание анимации загрузки System.out.print("Загрузка"); for (int i = 0; i < 5; i++) { try { ➡️ Easy Java | #Теория