Wenn Sie auf einen Thread mit langer Laufzeit stoßen, der während der Ausführung gestoppt werden muss, ist es wichtig, dies ordnungsgemäß zu tun, um unvorhersehbare Folgen zu vermeiden .
Um dies zu erreichen, besteht ein gängiger Ansatz darin, eine Steuervariable in die run()-Methode des Threads einzuführen. Diese Variable, normalerweise ein boolesches Flag, fungiert als Wächter, um die Beendigungsanforderung zu signalisieren.
Betrachten Sie das folgende Beispiel:
class MyThread extends Thread { volatile boolean finished = false; public void stopMe() { finished = true; } @Override public void run() { while (!finished) { // Perform the necessary actions } } }
Vom Hauptthread aus können Sie die Ausführung ordnungsgemäß anhalten Aufruf der stopMe()-Methode:
MyThread myThread = new MyThread(); myThread.start(); // Wait some time to simulate work Thread.sleep(500); myThread.stopMe();
Früher verfügte Java über eine stop()-Methode, die jedoch aufgrund ihres Potenzials, den Thread-Status zu beschädigen und erworbene Sperren aufzuheben, als unsicher erklärt wurde. Daher ist die Verwendung des Kontrollvariablenansatzes die empfohlene Methode, um einen sauberen und kontrollierten Thread-Abschluss sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie beendet man einen Java-Thread ordnungsgemäß?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!