Red de conocimiento informático - Material del sitio web - ¿Cómo finalizar un hilo con elegancia?

¿Cómo finalizar un hilo con elegancia?

Primero que nada, gracias por invitarme.

En este artículo, analizaremos una forma concisa de finalizar un hilo de Java, lo cual es necesario porque Java ha abandonado el método Thread.stop().

Hilo. Detente, hilo. Pausa, hilo. Recuperación y tiempo de actividad. Oracle ha abandonado RunfinalizerSONEXIT debido a algunos posibles problemas de seguridad de subprocesos. Existen pocas formas reconocidas y ampliamente aceptadas de lograrlo. En este artículo, analizaremos dos formas de finalizar un hilo en Java.

Usa etiquetas

para interrumpir hilos.

1. Utilice logotipos

Una forma sencilla es utilizar subprocesos para indicar si el subproceso se está ejecutando y utilizar este logotipo para tomar acciones correctivas según sus requisitos. A continuación se muestra un código de muestra que describe cómo utilizar indicadores para finalizar subprocesos de Java.

En el ejemplo anterior. Podemos controlar la ejecución configurando la variable de ejecución en falso. En nuestro caso, utilizamos AtomicBoolean para lograr concurrencia. Si no desea usarlo (no recomendado), debe asegurarse de que Boolean sea mutable en su código. Puedes reemplazarlo con volátil

2. Interrumpir el hilo

El código anterior se ve bien, pero hay algunos puntos a considerar antes de adoptar el enfoque anterior.

Se vuelve más complicado si tenemos muchos hilos y debemos asegurarnos de usar el método join() para completar estos hilos.

¿Realmente necesitamos definir un indicador booleano ya que Java ya proporciona un indicador de interrupción para esta función?

Hay varias cosas muy importantes en este bloque de código.

No aceptaremos la excepción, sino que la pasaremos al sistema para asegurarnos de que el sistema tome medidas correctivas basadas en la excepción.

En el ejemplo anterior, detectamos la InterruptedException y la usamos para interrumpir inmediatamente nuestro hilo. hilo actual(). interrumpir(). Esto es necesario porque una vez que se lanza la excepción, el indicador de interrupción se destruirá, lo que puede causar algunos problemas si nuestro código se ejecuta en un bucle anidado.

En resumen, si aún desea utilizar el método de marca, Thread.interrupt() es el método preferido/recomendado para finalizar el hilo de Java. Es posible que deba esperar a que se completen todas las operaciones de bloqueo antes. utilizando el método basado en banderas.

Los derechos de autor del artículo pertenecen a San Churan. Por favor indique la fuente al reimprimir. Bienvenido a reimprimir, comentar y compartir. Si tienes algún artículo para compartir, puedes contactarme.