Comment arrêter/tuer un thread Java de longue durée lors de l'exécution ? temporisé -> annulé -> états interrompus

Publié: 2021-07-17

Comment tuer le fil Java prenant plus de temps que prévu pour se terminer? timeout -> annulé -> état interrompu

Vous êtes-vous déjà demandé comment tuer un thread Java de longue durée ? Avez-vous l'une des questions ci-dessous ?

  • Tuer/Arrêter un fil après un certain laps de temps
  • Tuer le thread après un certain délai spécifié en Java
  • Comment tuer un thread Java
  • Comment arrêter un thread en Java avec un exemple
  • comment arrêter le thread dans l'exemple de code java
  • comment arrêter un thread en java sans utiliser la méthode d'arrêt

Si vous avez l'une des questions ci-dessous, vous êtes au bon endroit. Aujourd'hui, nous allons passer en revue un exemple simple qui montre comment Java8 supprime les threads de longue durée.

Qu'est-ce qu'une logique :

  1. Créer la classe CrunchifyJavaTaskTimeout.java
  2. Créez un exécuteur de thread Java avec une seule taille de pool de threads.
  3. Créer 4 futures tâches d'un objet CrunchifyRunner avec un délai de 3 secondes
  4. CrunchifyRunner.java est une classe simple qui implémente la méthode call()
    • Il introduit un délai de 20 seconds si futureTask = 4
  5. Une fois que le futur atteint 3 seconds , il crée une exception de délai d'attente si le thread est toujours en cours d'exécution
    • Une fois le délai expiré, nous devons annuler la tâche à l'aide de crunchifyFuture. cancel( true ) ;
    • Une fois que futureTask est annulé, il déclenchera InterruptedException (lancé lorsqu'un thread est en attente, en sommeil ou autrement occupé, et que le thread est interrompu, avant ou pendant l'activité. Parfois, une méthode peut souhaiter tester si le thread actuel a été interrompu, et si c'est le cas, lever immédiatement cette exception.)

Commençons:

Étape 1 Créer la classe CrunchifyRunner.java

Étape 2 Créez la classe CrunchifyJavaTaskTimeout.java

Étape 3

Faites un clic droit sur CrunchifyJavaTaskTimeout.java et exécutez-le en tant qu'application Java.

Vous verrez ci-dessous le résultat dans la console Eclipse.

Comment tuer le thread d'arrêt java lors de l'exécution

Faites-moi savoir si vous avez des questions sur ce sujet.