Sie können den Thread bitten, ihn zu unterbrechen, indem Sie Thread.interrupt()
Beachten Sie, dass einige andere Methoden mit ähnlicher Semantik existieren - stop()
und destroy()
- aber sie sind veraltet , weil sie unsicher . Sei nicht versucht, sie zu benutzen.
Wie Bozho sagte, ist Thread.interrupt () der generische und richtige Weg, dies zu tun. Aber denken Sie daran, dass der Thread dazu benötigt, zusammenzuarbeiten. Es ist sehr einfach, einen Thread zu implementieren, der Unterbrechungsanforderungen ignoriert.
Damit ein Codeabschnitt auf diese Weise unterbrechbar ist, sollte er keine InterruptedException ignorieren und das Unterbrechungsflag bei jeder Schleifeniteration überprüfen (mit Thread.currentThread (). isInterrupted ()). Außerdem sollte es keine nicht unterbrechbaren Blockierungsoperationen haben. Wenn solche Operationen existieren (z. B. Warten auf einen Socket), dann benötigen Sie eine spezifischere Unterbrechungsimplementierung (z. B. Schließen des Sockets).
In Kürze benötigen Sie Thread.interrupt()
Weitere Details finden Sie in diesem Artikel im Abschnitt How do I stop a thread that waits for long periods (e.g., for input)
Warum sind%? co_de%, Thread.stop
, Thread.suspend
und Thread.resume
Veraltet? .
Tags und Links java multithreading