Heim > häufiges Problem > Der Lebenszyklus eines Threads ist in mehrere Teile unterteilt

Der Lebenszyklus eines Threads ist in mehrere Teile unterteilt

清浅
Freigeben: 2019-04-16 17:34:05
Original
49292 Leute haben es durchsucht

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

Der Lebenszyklus eines Threads ist in mehrere Teile unterteilt

[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();
Nach dem Login kopieren

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();
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage