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

Метод interrupt

Метод interrupt прерывает выполнение потока. Когда поток находится в состоянии ожидания (например, в методах sleep, wait или join), он немедленно пробуждается и получает исключение InterruptedException. Если поток не находится в ожидании, то просто устанавливается флаг прерывания, который можно проверить с помощью методов isInterrupted или Thread.interrupted. Метод не принимает параметров и не возвращает значения.

Синтаксис

thread.interrupt()

Пример

Давайте создадим поток, который спит 10 секунд, и прервем его через 2 секунды:

public class Main { public static void main(String[] args) { Thread thread = new Thread(() -> { try { Thread.sleep(10000); System.out.println("Thread finished"); } catch (InterruptedException e) { System.out.println("Thread was interrupted"); } }); thread.start(); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } thread.interrupt(); } }

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

"Thread was interrupted"

Пример

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

public class Main { public static void main(String[] args) { Thread thread = new Thread(() -> { while (!Thread.currentThread().isInterrupted()) { System.out.println("Working..."); } System.out.println("Thread stopped"); }); thread.start(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } thread.interrupt(); } }

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

"Working..." "Working..." "Working..." "Thread stopped"

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

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