utilizado thread run reiniciar reanudar pausar para método infinito hilos ejecución dormir detener como comenzar java multithreading

thread - Detener un hilo en Java?



run en java (6)

Mira aquí :

Métodos sugeridos para detener un hilo en HowToStopAThread

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?


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.


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 resto.