Exemples Java - Terminaison d'un thread

Java 实例Exemples Java

À l'origine, Java fournissait la méthode stop() dans Thread pour terminer les threads, mais cette méthode n'est pas sûre, elle est donc généralement déconseillée.

Cet article présente l'utilisation de la méthode interrupt pour interrompre des threads.

L'utilisation de la méthode interrupt pour interrompre un thread peut être divisée en deux cas :

  • (1) Le thread est dans un état bloqué, comme lorsque la méthode sleep est utilisée.
  • (2) Utilisez while (!isInterrupted()) { ... } pour déterminer si le thread a été interrompu.

Dans le premier cas, l'utilisation de la méthode interrupt amènera la méthode sleep à lever une exception InterruptedException, tandis que dans le second cas le thread se terminera directement. Le code suivant illustre l'utilisation de la méthode interrupt dans le premier cas.

Fichier ThreadInterrupt.java

public class ThreadInterrupt extends Thread { public void run() { try { sleep(50000); //Délai de 50 secondes } catch (InterruptedException e) { System.out.println(e.getMessage()); } } public static void main(String[] args) throws Exception { Thread thread = new ThreadInterrupt(); thread.start(); System.out.println("Appuyez sur une touche dans les 50 secondes pour interrompre le thread !"); System.in.read(); thread.interrupt(); thread.join(); System.out.println("Le thread est terminé !"); } }

La sortie du code ci-dessus est :

在50秒之内按任意键中断线程!

sleep interrupted
线程已经退出!

Java 实例Exemples Java

Autres extensions