Maison >Java >javaDidacticiel >Comment arrêter en toute sécurité et gracieusement un thread Java ?
Lorsque vous travaillez avec le multithreading en Java, il peut arriver que vous deviez mettre fin à un thread prématurément. Pour garantir une bonne exécution et éviter l’instabilité du système, il est crucial d’arrêter les threads « en douceur ». Cela implique de permettre au thread d'effectuer toutes les opérations critiques avant de terminer son exécution.
Problème :
Vous avez créé un thread dont l'exécution prend trop de temps. . Bien qu'il semble inachevé, vous souhaitez arrêter le fil de façon gracieuse.
Solution :
L'approche privilégiée pour y parvenir consiste à exploiter une variable booléenne dans le fil de discussion cible. méthode run(). Définir cet indicateur sur true de l’extérieur signalera au thread de se terminer correctement. Voici un exemple :
class MyThread extends Thread { volatile boolean finished = false; public void stopMe() { finished = true; } @Override public void run() { while (!finished) { // Perform tasks } } }
Évitez la méthode stop() :
Dans le passé, une méthode Thread.stop() existait, mais son utilisation est fortement découragé. Selon la documentation Java, cette méthode "déverrouille tous les moniteurs qu'elle a verrouillés" lors de l'exécution, entraînant une incohérence potentielle des données et un comportement arbitraire.
Par conséquent, l'utilisation d'un indicateur booléen comme illustré ci-dessus garantit une sécurité et un comportement arbitraires. mécanisme de terminaison de fil contrôlé.
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!