¿Cómo detener/matar un subproceso Java de ejecución prolongada en tiempo de ejecución? agotado -> cancelado -> estados interrumpidos

Publicado: 2021-07-17

¿Cómo matar el hilo de Java que tarda más de lo esperado en terminar? tiempo de espera -> cancelado -> estado interrumpido

¿Alguna vez te has preguntado cómo matar un hilo de Java de larga duración? ¿Tiene alguna de las siguientes preguntas?

  • Matar/Detener un hilo después de cierto período de tiempo
  • Matar hilo después de un límite de tiempo especificado en Java
  • Cómo matar un hilo de Java
  • Cómo detener un hilo en Java con un ejemplo
  • cómo detener el hilo en el ejemplo de código Java
  • cómo detener un hilo en java sin usar el método de parada

Si tiene alguna de las siguientes preguntas, entonces está en el lugar correcto. Hoy repasaremos un ejemplo simple que demuestra las formas de Java8 para eliminar hilos de ejecución prolongada.

Que es una logica:

  1. Crear clase CrunchifyJavaTaskTimeout.java
  2. Cree un ejecutor de subprocesos Java con solo 1 tamaño de grupo de subprocesos.
  3. Cree 4 tareas futuras de un objeto CrunchifyRunner con un tiempo de espera de 3 segundos
  4. CrunchifyRunner.java es una clase simple que implementa el método call()
    • Introduce 20 seconds retraso si futureTask = 4
  5. Una vez que el futuro llega a 3 seconds , crea una excepción de tiempo de espera si el hilo aún se está ejecutando
    • Una vez que se agote el tiempo de espera, debemos cancelar la tarea usando crunchifyFuture. cancel( true ) ;
    • Una vez que se cancela futureTask, activará InterruptedException (se lanza cuando un subproceso está esperando, durmiendo u ocupado de otra manera, y el subproceso se interrumpe, ya sea antes o durante la actividad. Ocasionalmente, un método puede desear probar si el subproceso actual se ha interrumpido, y si es así, lanzar inmediatamente esta excepción).

Empecemos:

Paso-1 Crear clase CrunchifyRunner.java

Paso-2 Crear clase CrunchifyJavaTaskTimeout.java

Paso 3

Haga clic derecho en CrunchifyJavaTaskTimeout.java y ejecútelo como una aplicación Java.

Verá el siguiente resultado en la consola de Eclipse.

Cómo matar detener el hilo de Java en tiempo de ejecución

Déjame saber si tienes alguna pregunta sobre este tema.