En caso de que ocurra un tiempo de espera específico, debo eliminar/cancelar/interrumpir/fallar un hilo en ejecución. Utilizo ExecutorService para administrar un grupo de subprocesos, a través del cual puedo cancelar la tarea usando el método cancel() de Future que elimina esto de la vista de ExecutorService, pero el subproceso en sí continúa ejecutándose.Interrumpir/matar a un hilo en ejecución
Mirando en línea, las personas talk about interrupting threads que tienen un bucle usando el método isInterrupted() o están esperando en IO, que pueden manejarse saliendo a la superficie InterruptedException.
¿Cuál es la práctica general sobre matar hilos que no tienen bucles (o tienen otros ganchos) y no están esperando en IO? Al mirar a mi alrededor, Thread.stop() parece hacer lo que necesito (simplemente matar ciegamente el hilo) pero no se recomienda su uso.
"matar a ciegas el hilo" es algo que no debes hacer, nunca. – Viruzzo
Thread.stop() solo está bien para fragmentos de código triviales donde se puede entender la consecuencia de detenerse en cada línea posible. Este tipo de código también es simple de agregar líneas para verificar el indicador interrumpido. es decir, no es una solución ideal ni siquiera en teoría. –