Heim > Java > javaLernprogramm > Wie kann man einen Thread in Java ordnungsgemäß anhalten?

Wie kann man einen Thread in Java ordnungsgemäß anhalten?

Linda Hamilton
Freigeben: 2024-11-11 04:33:03
Original
1045 Leute haben es durchsucht

How to Gracefully Halt a Thread in Java?

Anmutiges Anhalten eines Threads in Java

Wenn die Ausführung eines Threads übermäßig lange dauert, kann es erforderlich sein, ihn ordnungsgemäß anzuhalten um Systeminstabilität zu verhindern. Der bevorzugte Ansatz, dies zu erreichen, ist die Implementierung eines booleschen Flags in der run()-Methode des Threads wie folgt:

class MyThread extends Thread {
  volatile boolean finished = false;

  public void stopMe() {
    finished = true;
  }

  public void run() {
    while (!finished) {
      // Perform necessary tasks
    }
  }
}
Nach dem Login kopieren

Dadurch können Sie den Thread von einer externen Quelle stoppen, indem Sie „finished“ auf „true“ setzen.

Es ist wichtig zu beachten, dass die veraltete Methode Thread.stop() von Natur aus unsicher ist. Wie in der Java-Dokumentation angegeben, kann es aufgrund der Entsperrung von Monitoren und möglichen Inkonsistenzen in den Objektzuständen zu willkürlichem Verhalten kommen. Daher ist die Implementierung eines Schutzes innerhalb der run()-Methode des Threads, wie oben gezeigt, der empfohlene und sichere Ansatz für eine ordnungsgemäße Thread-Beendigung.

Das obige ist der detaillierte Inhalt vonWie kann man einen Thread in Java ordnungsgemäß anhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage