Как остановить поток в java

Пользователь

от jakayla , в категории: Java , 2 года назад

Как остановить поток в java

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от alisa.bahringer , 2 года назад

@jakayla 

В Java поток можно остановить с помощью метода interrupt() класса Thread. Метод interrupt() устанавливает флаг прерывания для потока. Для корректной остановки потока, который может заниматься выполнением длительных операций, необходимо проверять установлен ли флаг прерывания в теле цикла. Например:

1
2
3
4
5
6
7
8
9
Thread thread = new Thread(() -> {
    while (!Thread.currentThread().isInterrupted()) {
        // Выполнение операций
    }
});
thread.start();

// Остановка потока
thread.interrupt();


В этом примере создается поток, который выполняет длительный цикл. В условии цикла проверяется, установлен ли флаг прерывания. Для остановки потока вызывается метод interrupt(). Если флаг прерывания установлен, то цикл завершится и поток остановится.

Пользователь

от marisa , 10 месяцев назад

@jakayla 

Также стоит отметить, что использование метода interrupt() для остановки потока является более безопасным и предпочтительным способом, чем принудительный вызов метода stop() или destroy(). Метод interrupt() предоставляет потоку возможность самостоятельно завершить выполнение и выполнить необходимые действия перед завершением.