Arrêter gracieusement un thread en Java
Lorsqu'un thread prend trop de temps à s'exécuter, il peut être nécessaire de l'arrêter gracieusement pour éviter l’instabilité du système. L'approche préférée pour y parvenir consiste à implémenter un indicateur booléen dans la méthode run() du thread, comme suit :
class MyThread extends Thread { volatile boolean finished = false; public void stopMe() { finished = true; } public void run() { while (!finished) { // Perform necessary tasks } } }
Cela vous permet d'arrêter le thread à partir d'une source externe en définissant finish sur true.
Il est important de noter que la méthode obsolète Thread.stop() est intrinsèquement dangereuse. Comme l'indique la documentation Java, cela peut conduire à un comportement arbitraire en raison du déverrouillage des moniteurs et d'incohérences potentielles dans les états des objets. Par conséquent, l’implémentation d’une garde dans la méthode run() du thread, comme démontré ci-dessus, est l’approche recommandée et sûre pour une terminaison gracieuse du thread.
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!