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

Метод isInterrupted

Метод isInterrupted класса Thread проверяет, установлен ли у потока флаг прерывания. Метод возвращает true, если поток был прерван, и false в противном случае. В отличие от статического метода interrupted, данный метод вызывается у конкретного объекта потока и не сбрасывает флаг прерывания после проверки. Параметров метод не принимает.

Синтаксис

thread.isInterrupted()

Пример

Давайте создадим поток, прервём его и проверим состояние флага прерывания:

public class Main { public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(() -> { while (true) { if (Thread.currentThread().isInterrupted()) { System.out.println("Thread was interrupted"); return; } } }); thread.start(); thread.interrupt(); Thread.sleep(100); System.out.println(thread.isInterrupted()); } }

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

"Thread was interrupted" true

Пример

Давайте проверим, что метод isInterrupted не сбрасывает флаг прерывания, в отличие от метода interrupted:

public class Main { public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(() -> { try { Thread.sleep(1000); } catch (InterruptedException e) { // handle interruption } }); thread.start(); thread.interrupt(); Thread.sleep(100); boolean res1 = thread.isInterrupted(); boolean res2 = thread.isInterrupted(); System.out.println(res1); System.out.println(res2); } }

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

false false

Оба вызова вернули false, так как блок catch поглотил исключение и сбросил флаг прерывания. Чтобы проверить флаг до обработки исключения, нужно вызывать isInterrupted внутри цикла или до блокирующей операции.

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

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