Come fermare/uccidere il thread Java di lunga durata in fase di esecuzione? scaduto -> annullato -> stati interrotti

Pubblicato: 2021-07-17

Come uccidere il thread Java impiegando più tempo del previsto per finire? timedout -> annullato -> stato interrotto

Ti sei mai chiesto come uccidere il thread Java di lunga durata? Hai una delle seguenti domande?

  • Termina/Interrompi un thread dopo un certo periodo di tempo
  • Interruzione del thread dopo un determinato limite di tempo in Java
  • Come eliminare un thread Java
  • Come fermare un thread in Java con un esempio
  • come fermare il thread nell'esempio di codice java
  • come fermare un thread in Java senza usare il metodo stop

Se hai una delle seguenti domande, sei nel posto giusto. Oggi esamineremo un semplice esempio che dimostra i modi Java8 per uccidere i thread di lunga durata.

Cos'è una logica:

  1. Crea classe CrunchifyJavaTaskTimeout.java
  2. Crea Java Thread executor con una sola dimensione del pool di thread.
  3. Crea 4 attività future di un oggetto CrunchifyRunner con un timeout di 3 secondi
  4. CrunchifyRunner.java è una classe semplice che implementa il metodo call()
    • Introduce un ritardo di 20 seconds se futureTask = 4
  5. Una volta che il futuro raggiunge 3 seconds , crea un'eccezione di timeout se il thread è ancora in esecuzione
    • Una volta scaduto, dobbiamo annullare l'attività utilizzando crunchifyFuture. cancel( true ) ;
    • Una volta che futureTask viene annullato, attiverà InterruptedException (generato quando un thread è in attesa, inattivo o altrimenti occupato e il thread viene interrotto, prima o durante l'attività. Occasionalmente un metodo potrebbe voler verificare se il thread corrente è stato interrotto, e in tal caso, lanciare immediatamente questa eccezione.)

Iniziamo:

Passaggio 1 Crea la classe CrunchifyRunner.java

Passaggio 2 Crea la classe CrunchifyJavaTaskTimeout.java

Passaggio 3

Fare clic con il pulsante destro del mouse su CrunchifyJavaTaskTimeout.java ed eseguirlo come applicazione Java.

Di seguito vedrai il risultato nella console Eclipse.

Come uccidere il thread java stop in fase di esecuzione

Fatemi sapere se avete domande su questo argomento.