Пример использования метода sleep(). Потоки в Java

Пример использования метода sleep(). Потоки в Java

Метод sleep() класса java.lang.Thread используется для того, чтобы приостановить выполнение текущего потока на указанное в миллисекундах время. Значение аргумента для миллисекунд не может быть отрицательным, в противном случае будет брошен IllegalArgumentException.

Существует еще один способ приостановить выполнение работы программы: метод sleep(long millis, int nanos). Он используется для того, чтобы приостановить выполнение текущего потока на точное время в миллисекундах и наносекундах. Значение наносекунд допустимо между 0 и 999999.

Вот простая программа, которая использует метод Thread.sleep() для приостановки выполнения основного потока в течение 2 секунд:

Если вы запустите приведенную выше программу, то заметите, что она остановила выполнение потока на немного большее время, чем на 2000 миллисекунд. Дело в том, что все зависит от операционной системы и конкретной реализации планировщика потоков.

Важные моменты в использовании метода sleep()

  • Этот метод всегда приостанавливает выполнение текущего потока.
  • Фактическое время от остановки потока до пробуждения зависит от системных таймеров и планировщиков. Для не очень загруженной системы, фактическое время для сна будет очень рядом с указанным временем сна. Для загруженной системы этот показатель будет немного больше.
  • Любой другой поток может прервать приостановленный поток. В этом случае его выполнение прерывается и выбрасывается исключение.

Следите за обновлениями раздела Многопоточность и параллелизм в Java.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *