Detener un hilo en Java?

Estoy en el proceso de escribir un fragmento de código que se conecta a un servidor genera un montón de hilos usando esa conexión y hace un montón de “cosas”.

Hay ciertos casos en los que la conexión falla y necesito detener todo y comenzar de cero con un nuevo objeto.

Quería limpiar después del objeto pero llamar a thread.stop en los hilos, pero este método aparentemente está en desuso.

¿Cuál es la alternativa recomendada para hacer esto? ¿Debo escribir mi propio método de limpieza y salida para cada uno de los hilos? Establecer el hilo a nulo? ¿o algo mas?

Mira aquí :

Métodos sugeridos para detener un hilo en HowToStopAThread

Suponiendo que sus hilos están razonablemente bajo su control, es decir, no están llamando a nada que potencialmente va a esperar para siempre sin que se ejecute su código, lo cerraría con un indicador simple (pero seguro para subprocesos: ¡use volátiles!).

Vea este artículo para ver un ejemplo en C #: el equivalente de Java debería ser fácil de resolver. La interrupt llamadas no tendrá ningún efecto hasta que el siguiente hilo espere y stop puede dejar su aplicación en un estado difícil de predecir. Siempre que sea posible, realice un cierre ordenado y limpio.

Hay una pregunta con un tema muy similar:

Cómo abortar un hilo de una manera rápida y limpia en java

Usa tu_intervalación_de.thread.y revisa tu hilo si Thread.interrupted () devuelve true. Si es así, cierra el hilo correctamente.

He usado este patrón de ejemplo muy simple. Parece que funciona y es fácil de entender e implementar.

 private Thread m_CleanupThread = null; public void threadCleanUp(){ m_CleanupThread = new Thread(this); m_CleanupThread.Start(); } 

Este hilo terminará y el recolector de basura hará el rest.