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

Как завершить работу с потоками

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

  1. Естественное завершение - когда метод run() завершает выполнение
java
Thread thread = new Thread(() -> {
    // выполнение задачи
});
thread.start();
  1. Использование флага для мягкого завершения:
java
class MyThread extends Thread {
    private volatile boolean running = true;
    
    public void stopRunning() {
        running = false;
    }
    
    @Override
    public void run() {
        while(running) {
            // выполнение задачи
        }
    }
}
  1. Через interrupt():
java
Thread thread = new Thread(() -> {
    while(!Thread.currentThread().isInterrupted()) {
        // выполнение задачи
    }
});
thread.start();
// где-то в другом месте
thread.interrupt();

Важно: метод stop() устарел и не рекомендуется к использованию, так как может оставить объекты в неконсистентном состоянии.

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

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

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

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