Das Stoppen von Java-Threads war schon immer ein häufiges Problem bei der Entwicklung von Multithread-Programmen. Viele Leute haben mich gefragt, deshalb werde ich es heute hier zusammenfassen, in der Hoffnung, dass mehr Leute wissen, wie man einen laufenden Thread in Java sicher beendet.
In der Java-Multithread-Programmierung enthält der Typ java.lang.Thread eine Reihe von Methoden start(), stop(), stop(Throwable) und suspend() , destroy() und resume(). Mit diesen Methoden können wir praktische Vorgänge an Threads ausführen, von diesen Methoden bleibt jedoch nur die start()-Methode erhalten.
Die Gründe für den Verzicht auf diese Methoden werden in der JDK-Hilfedokumentation und einem Artikel von Sun „Warum sind Thread.stop, Thread.suspend und Thread.resume veraltet?“ erläutert.
Also, wie sollen wir den Thread stoppen?
Verwenden Sie gemeinsam genutzte Variablen
Auf diese Weise werden gemeinsam genutzte Variablen eingeführt, weil die Variable von mehreren Threads verwendet werden kann, die dieselbe Aufgabe ausführen. Als Signal, ob Um zu unterbrechen, benachrichtigen Sie die Ausführung des unterbrochenen Threads.
public class ThreadFlag extends Thread { public volatile boolean exit = false; public void run() { while (!exit); } public static void main(String[] args) throws Exception { ThreadFlag thread = new ThreadFlag(); thread.start(); sleep(3000); // 主线程延迟3秒 thread.exit = true; // 终止线程thread thread.join(); System.out.println("线程退出!"); } }
Im obigen Code ist ein Exit-Flag „exit“ definiert. Wenn „exit“ wahr ist, wird die while-Schleife beendet und der Standardwert von „exit“ ist „false“. Bei der Definition von Exit wird ein Java-Schlüsselwort volatile verwendet. Der Zweck dieses Schlüsselworts besteht darin, Exit zu synchronisieren, was bedeutet, dass nur ein Thread gleichzeitig den Wert von Exit ändern kann.
Das obige ist der detaillierte Inhalt vonSo stoppen Sie einen Thread in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!