Maison > Java > javaDidacticiel > Comment terminer gracieusement un thread Java ?

Comment terminer gracieusement un thread Java ?

Linda Hamilton
Libérer: 2024-11-11 20:22:03
original
835 Les gens l'ont consulté

How to Gracefully Terminate a Java Thread?

Comment terminer gracieusement un thread Java

Lorsque vous rencontrez un thread de longue durée qui doit être arrêté en cours d'exécution, il est crucial de le faire gracieusement pour éviter des conséquences imprévisibles .

Pour y parvenir, une approche courante consiste à introduire une variable de contrôle dans la méthode run() du thread. Cette variable, généralement un indicateur booléen, agit comme une sentinelle pour signaler la demande de terminaison.

Considérez l'exemple suivant :

class MyThread extends Thread {
  volatile boolean finished = false;

  public void stopMe() {
    finished = true;
  }

  @Override
  public void run() {
    while (!finished) {
      // Perform the necessary actions
    }
  }
}
Copier après la connexion

À partir du thread principal, vous pouvez interrompre gracieusement l'exécution en appeler la méthode stopMe() :

MyThread myThread = new MyThread();
myThread.start();

// Wait some time to simulate work
Thread.sleep(500);

myThread.stopMe();
Copier après la connexion

Auparavant, Java avait une méthode stop(), mais elle a été déclarée dangereuse en raison de son potentiel de corruption du l'état du thread et déverrouiller les verrous acquis. Par conséquent, l'utilisation de l'approche des variables de contrôle est la méthode recommandée pour garantir une terminaison de thread propre et contrôlée.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal