InterruptedException
Проверяемое исключение: ожидающий поток попросили прерваться.
Доступно с: Java 1.0
Синтаксис
public class InterruptedException extends ExceptionПримеры
Прерывание спящего потока:
void main() throws InterruptedException {
Thread worker = new Thread(() -> {
try {
Thread.sleep(10_000);
IO.println("finished");
} catch (InterruptedException e) {
IO.println("interrupted, stopping");
}
});
worker.start();
Thread.sleep(100);
worker.interrupt();
worker.join();
}Результат:
interrupted, stoppingПримечания
Его бросают методы, которые ждут: sleep(), join(), Future.get(), CountDownLatch.await(). Прерывание — вежливая просьба остановиться. Не глотайте исключение пустым catch: либо завершите работу, либо восстановите флаг через Thread.currentThread().interrupt().
См. также
- Thread.sleep() — Приостанавливает текущий поток на заданное время.
- Thread.join() — Ждёт, пока поток завершится.
- Future.get() — Ждёт завершения задачи и возвращает её результат.
В учебнике
- Потоки выполнения — Потоки в Java — класс Thread, запуск через start, ожидание через join, Thread.sleep, имена потоков и непредсказуемый порядок выполнения.