Встречается на собеседованиях • сегодня

Как работает метод interrupt

Метод interrupt() в Java используется для прерывания потока. Он устанавливает флаг прерывания потока, но не останавливает его принудительно. Поток должен сам проверять этот флаг (через Thread.interrupted() или isInterrupted()) и корректно завершать работу.

Пример:

java
Thread thread = new Thread(() -> {
    while (!Thread.currentThread().isInterrupted()) {
        System.out.println("Работаю...");
    }
    System.out.println("Поток прерван");
});
thread.start();
thread.interrupt(); // Установит флаг прерывания

Важные нюансы:

  1. Если поток заблокирован (например, в wait(), sleep() или join()), метод выбросит InterruptedException и сбросит флаг прерывания
  2. isInterrupted() не сбрасывает флаг, в отличие от статического Thread.interrupted()
  3. После обработки InterruptedException часто нужно заново установить флаг прерывания (Thread.currentThread().interrupt())
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы