При возникновении определенного таймаута мне нужно убить/отменить/прервать/пропустить текущий поток. Я использую ExecutorService для управления пулом потоков, через который я могу отменить задачу, используя метод cancel(), который удаляет это из представления ExecutorService, но сам поток продолжает работать.Прерывание/Убивание текущей нити
Оглядываясь в сети, люди talk about interrupting threads, которые имеют цикл с использованием метода isInterrupted() или ждут IO, которые могут обрабатываться путем всплытия InterruptedException.
Какова общая практика по уничтожению нитей, которые не имеют ни петли (или имеют какие-либо другие крючки), так и не ждут ввода-вывода? Оглядываясь, Thread.stop(), кажется, делает то, что мне нужно (просто слепо убить поток), но не рекомендуется использовать его.
«Слепо убить нить» - это то, что вы не должны делать никогда. – Viruzzo
Thread.stop() подходит только для тривиальных фрагментов кода, где вы можете понять последствия остановки на каждой возможной линии. Этот тип кода также просто добавить строки для проверки прерванного флага. т. е. не является идеальным решением даже в теории. –