Arrêter gracieusement les threads Java
Lorsque vous êtes confronté à un thread long et potentiellement incomplet, il peut devenir nécessaire de le terminer de manière contrôlée. Cela évite les interruptions brusques et garantit un processus d'arrêt correct.
L'approche optimale
La méthode recommandée implique d'implémenter un indicateur booléen dans la méthode run() du thread. Lorsque le thread doit être terminé, cet indicateur est défini sur « true » à partir d'une source externe. Cela permet au thread de terminer naturellement son exécution actuelle et de se terminer correctement.
Par exemple :
public class MyThread extends Thread { volatile boolean finished = false; public void stopMe() { finished = true; } @Override public void run() { while (!finished) { // Perform necessary tasks } } }
Approche héritée : Thread.stop()
Une ancienne méthode de terminaison de thread impliquait l’invocation de la méthode Thread.stop(). Cependant, cette approche est désormais considérée comme dangereuse et déconseillée. Contrairement à la méthode du drapeau booléen, Thread.stop() arrête brusquement le thread, laissant potentiellement les objets protégés dans un état instable et provoquant des conséquences imprévisibles.
Par conséquent, l'approche du drapeau booléen reste la solution recommandée pour arrêter les threads Java en douceur. .
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!