Heim >Java >javaLernprogramm >Ist Thread-Unterbrechung eine bessere Alternative zur veralteten Methode „stop()' in Java?
Thread-Unterbrechung als Alternative zu Stop()
Von der Methode „stop()“ wird in Java aufgrund ihres Potenzials generell abgeraten unerwartete Nebenwirkungen verursachen. Ein alternativer Ansatz zum Beenden eines Threads ist die Unterbrechung.
Thread-Unterbrechung
Das Unterbrechen eines Threads signalisiert ihm, dass er seine Ausführung ordnungsgemäß stoppen sollte. Um einen Thread zu unterbrechen, rufen Sie seine Methode „interrupt()“ auf. Wenn sich der Thread gut verhält und Unterbrechungen ordnungsgemäß verarbeitet, versucht er, seine aktuelle Aufgabe zu beenden, bevor er beendet wird.
Beispielimplementierung
Beachten Sie den folgenden Code:
Thread thread = new Thread(new Runnable() { @Override public void run() { while (!Thread.currentThread().isInterrupted()) { try { Thread.sleep(5000); System.out.println("Hello World!"); } catch (InterruptedException e) { Thread.currentThread().interrupt(); System.out.println("Thread interrupted"); } } } });
In diesem Code überprüft der Thread seinen Unterbrechungsstatus innerhalb der Schleife. Bei einer Unterbrechung wird eine „InterruptedException“ ausgelöst, die behandelt wird und den Unterbrechungsstatus des Threads erneut festlegt. Der Thread verlässt dann die Schleife und wird beendet.
Überlegungen
Unterscheidung von „Thread#isAlive()“ und Thread#interrupted()
Das obige ist der detaillierte Inhalt vonIst Thread-Unterbrechung eine bessere Alternative zur veralteten Methode „stop()' in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!