Heim >häufiges Problem >Der Lebenszyklus eines Threads ist in mehrere Teile unterteilt
Der Lebenszyklus eines Threads ist in fünf Teile unterteilt: Neu, Bereit, Laufen, Blockieren und Tod. Da die CPU zwischen mehreren Threads wechseln muss, wechselt auch der Thread-Status zwischen mehreren Läufen und Blockieren
[Empfohlener Kurs: C-Sprach-Tutorial]
Wenn ein Thread erstellt und gestartet wird, wechselt er weder sofort nach dem Start in den Ausführungsstatus, noch bleibt er immer darin Ausführung. Im Lebenszyklus eines Threads durchläuft er fünf Zustände: „Neu“, „Ausführbar“, „Läuft“, „Blockiert“ und „Tot“. Insbesondere wenn ein Thread gestartet wird, kann er die CPU nicht immer „belegen“, um alleine ausgeführt zu werden. Daher muss die CPU zwischen mehreren Threads wechseln, sodass der Thread-Status mehrmals zwischen „Laufen“ und „Blockieren“ wechselt.
Fünf Zustände des Lebenszyklus
Neuer Thread)
Beim Erstellen einer Instanz der Thread-Klasse (Objekt) , dieser Thread tritt in den neuen Status ein (nicht gestartet).
Zum Beispiel:
Thread t1=new Thread();
Bereit (ausführbar)
Der Thread wurde gestartet und wartet darauf, der CPU-Zeitscheibe zugewiesen zu werden bedeutet, dass der Thread zu diesem Zeitpunkt in der Bereitschaftswarteschlange wartet, um CPU-Ressourcen zu erhalten
Zum Beispiel:
t1.start();
Wird ausgeführt (läuft)
Der Der Thread hat CPU-Ressourcen erhalten und führt die Aufgabe aus (run()-Methode). Zu diesem Zeitpunkt wird der Thread bis zum Ende ausgeführt, sofern dieser Thread nicht automatisch CPU-Ressourcen aufgibt oder ein Thread mit höherer Priorität eintritt.
Blockiert
Aus irgendeinem Grund gibt der laufende Thread die CPU auf und unterbricht seine eigene Ausführung, das heißt, er wechselt in den blockierten Zustand.
Schlafen: Verwenden Sie die Methode „sleep(long t)“, um den Thread in den Ruhemodus zu versetzen. Ein schlafender Thread kann nach Ablauf der angegebenen Zeit in den Bereitschaftszustand wechseln.
Warten: Rufen Sie die Methode wait() auf. (Rufen Sie die Methode motivate() auf, um in den Bereitschaftszustand zurückzukehren.)
Von einem anderen Thread blockiert: Rufen Sie die Methode suspend() auf. (Rufen Sie die Methode „resume()“ auf, um fortzufahren.)
Tod (tot)
Wenn der Thread die Ausführung abschließt oder von anderen Threads beendet wird, wechselt der Thread in den Todeszustand Zu diesem Zeitpunkt kann der Thread nicht mehr in den Bereitschaftszustand wechseln und auf die Ausführung warten.
Natürliche Beendigung: Beendigung nach normaler Ausführung der run()-Methode
Anormale Beendigung: Rufen Sie die stop()-Methode auf, um die Ausführung eines Threads zu stoppen
Zusammenfassung: Das Obige ist die Zusammenfassung dieses Artikels Alle Inhalte, ich hoffe, es wird für alle hilfreich sein
Das obige ist der detaillierte Inhalt vonDer Lebenszyklus eines Threads ist in mehrere Teile unterteilt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!