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

Как можно прервать выполнение потока

В Java есть несколько способов прервать выполнение потока:

  1. interrupt() - устанавливает флаг прерывания. Поток должен проверять Thread.interrupted() или isInterrupted() и корректно завершаться.
java
Thread thread = new Thread(() -> {
    while (!Thread.currentThread().isInterrupted()) {
        // работа потока
    }
});
thread.start();
thread.interrupt();
  1. Флаг volatile - использование собственного флага для управления выполнением.
java
class MyThread implements Runnable {
    private volatile boolean running = true;
    
    public void stop() { running = false; }
    
    @Override
    public void run() {
        while (running) {
            // работа потока
        }
    }
}
  1. stop() (deprecated) - опасный метод, может оставить объекты в неконсистентном состоянии. Не рекомендуется.

Важно: прерывание потока - кооперативный механизм. Поток должен сам проверять флаги и завершаться корректно.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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