In Java sind Threads in zwei Typen unterteilt: Benutzer -Threads und Dämon (Service) Threads. Setdaemon (false) zum Benutzer -Thread; setdaemon (wahr) zum Daemon -Thread; Wenn nicht festgelegt, ist es der Benutzer -Thread.
Um einen einzelnen Thread zu beenden, verwenden Sie die Methode von Thread.interrupt () und um ein Multi-Thread zu beenden, müssen Sie einen Daemon-Thread einstellen. Wenn kein Benutzer -Thread vorliegt, werden alle Daemon -Threads beendet (er kann verstanden werden als: Der Daemon -Thread ist der Service -Thread, der Benutzer -Thread ist der Service -Thread, der Benutzer -Thread (der Service -Thread) und der Service -Thread endet automatisch ohne Bedeutung der Existenz)
Beispiel:
Class Stopthread -Implements Runnable {public void run () {// Konstruktor, während (true) während der Instanziation standardmäßig ausgeführt wird. {// Eine dauerhafte wahre Schleife wird verwendet, um festzustellen, ob der Daemon -Thread automatisch das System endet. args) {Stopthread ST = neuer Stoppthread (); Thread T1 = neuer Thread (ST); // Erstellen Sie einen neuen Thread Thread t2 = neuer Thread (ST); Wenn der Benutzer -Thread vollständig aufgehängt ist, hängen alle Daemon -Threads auch t2.setdaemon (true); t1.start (); // Thread startet t2.start (); int num = 0; while (true) {if (num ++ == 10) {Break;} System.out.Outln (Thread.current thread (). Num);} System.out.println ("Over");}}Wenn das letzte Satz system.out.println ("over") ausgeführt wird, endet der Benutzer -Thread (Hauptprogramm). Die beiden Daemon -Threads, die Informationen in der Backend Permanent Loop kontinuierlich ausgeben, enden automatisch automatisch.
Eine weitere häufige Frage wird eingeführt: Stimmt dies, wenn alle nicht-daemon-Threads im Java-Ende alle Daemon-Threads automatisch beenden?
Referenzantwort:
Die einzige Funktion eines Daemon -Threads besteht darin, Dienste für andere Threads bereitzustellen. Wenn nur Daemon-Threads übrig sind, verlässt die virtuelle Maschine “(von: Java Core-Technologie). Jetzt gibt es keine Nichtverteidigung, sodass Dämon nicht erforderlich ist, Dienste anzubieten.
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels über Daemon -Thread -Instanzen in der Multithread -Beendigung von Java -Sprache. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!