РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
995 of 1163 menu

Метод sleep

Метод sleep класса Thread приостанавливает выполнение текущего потока на указанное время. В первом параметре мы передаем количество миллисекунд, на которое нужно остановить поток. Второй параметр необязательный и задает дополнительное количество наносекунд (от 0 до 999999). Метод может выбросить исключение InterruptedException, если поток был прерван во время ожидания.

Синтаксис

Thread.sleep(millis) Thread.sleep(millis, nanos)

Пример

Давайте приостановим выполнение потока на 1000 миллисекунд (1 секунду) и выведем сообщение до и после паузы:

public class Main { public static void main(String[] args) { System.out.println("Start"); try { Thread.sleep(1000); } catch (InterruptedException e) { System.out.println("Thread was interrupted"); } System.out.println("End"); } }

Результат выполнения кода:

"Start" "End"

Пример

Давайте приостановим поток на 500 миллисекунд и 500000 наносекунд:

public class Main { public static void main(String[] args) { System.out.println("Before sleep"); try { Thread.sleep(500, 500000); } catch (InterruptedException e) { System.out.println("Thread was interrupted"); } System.out.println("After sleep"); } }

Результат выполнения кода:

"Before sleep" "After sleep"

Пример

Давайте прервем спящий поток из другого потока и обработаем исключение:

public class Main { public static void main(String[] args) { Thread thread = new Thread(() -> { try { System.out.println("Thread is going to sleep"); Thread.sleep(5000); System.out.println("Thread woke up"); } catch (InterruptedException e) { System.out.println("Thread was interrupted"); } }); thread.start(); try { Thread.sleep(1000); } catch (InterruptedException e) { System.out.println("Main thread was interrupted"); } thread.interrupt(); } }

Результат выполнения кода:

"Thread is going to sleep" "Thread was interrupted"

Смотрите также

  • метод interrupt,
    который прерывает поток
  • метод join,
    который ожидает завершения потока
  • метод yield,
    который уступает процессор другим потокам
  • метод currentThread,
    который возвращает текущий поток
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить