Comment tuer un thread efficacement sans utiliser la méthode obsolète Thread.stop()
La classe Java Thread fournit la méthode stop() comme moyen de terminer un thread, mais il est obsolète et ne doit pas être utilisé. Cet article présente une approche alternative pour terminer un thread à l'aide de la méthode d'interruption.
Utiliser l'interruption pour arrêter un thread
Au lieu d'appeler directement stop(), ce qui n'est pas sûr et peut provoquer une corruption des données, nous pouvons utiliser une interruption pour signaler au thread qu'il doit se terminer correctement. Voici comment cela fonctionne :
public class InterruptedExceptionExample { private static volatile boolean shutdown = false; public static void main(String[] args) { Thread thread = new Thread(() -> { while (!shutdown) { try { System.out.println("Running..."); Thread.sleep(5000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }); thread.start(); System.out.println("Press enter to quit"); try { System.in.read(); } catch (IOException e) { e.printStackTrace(); } shutdown = true; thread.interrupt(); } }
Dans ce code :
Avantages de l'utilisation Interruption :
L'interruption d'un thread offre plusieurs avantages par rapport au stop() obsolète :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!