Back to questions
Rutube
Junior — Middle
68
Каким образом можно прервать выполнение потока исполнения в программе?
Companies where asked
Answer from AI
sobes.tech AI
В Android (и в Java в целом) для прерывания выполнения потока можно использовать метод interrupt() объекта Thread. Этот метод устанавливает флаг прерывания у потока, и если поток находится в состоянии ожидания (например, sleep(), wait()), то будет выброшено исключение InterruptedException.
Чтобы корректно прервать поток, внутри его кода нужно периодически проверять состояние прерывания с помощью метода Thread.currentThread().isInterrupted() или ловить InterruptedException.
Пример:
Thread thread = new Thread(() -> {
try {
while (!Thread.currentThread().isInterrupted()) {
// Выполнение работы
Thread.sleep(1000); // может выбросить InterruptedException
}
} catch (InterruptedException e) {
// Поток был прерван во время сна
Thread.currentThread().interrupt(); // восстановить флаг прерывания
}
// Завершение работы
});
thread.start();
// Прервать поток
thread.interrupt();
Также можно использовать флаги или другие механизмы синхронизации для более контролируемого завершения работы потока.