Heim  >  Artikel  >  Java  >  Detaillierte Erläuterung verschiedener Zustände von Java-Threads

Detaillierte Erläuterung verschiedener Zustände von Java-Threads

巴扎黑
巴扎黑Original
2017-09-11 11:31:531994Durchsuche

Der folgende Editor bringt Ihnen einen Artikel über mehrere Zustände basierend auf Java-Threads (ausführliche Erklärung). Der Herausgeber findet es ziemlich gut, und jetzt möchte ich es Ihnen als Referenz geben. Folgen wir dem Editor, um einen Blick darauf zu werfen.

Threads können sechs Zustände haben:

 1. Neu (neu erstellt)

2.Runnable (ausführbar) (run)

3.Blocked (blockiert)

4.Waiting (Warten)

5. Zeitgesteuertes Warten (zeitgesteuertes Warten)

6. Beendet (beendet)

Neu erstellter Thread:

  Wenn Sie den neuen Operator zum Erstellen eines neuen Threads verwenden, z. B. new Thread(r), hat der Thread noch nicht mit der Ausführung begonnen und sein aktueller The Der Status ist neu und es müssen noch einige grundlegende Arbeiten durchgeführt werden, bevor der Thread ausgeführt werden kann.

Ausführbarer Thread:

 Sobald der Thread die Startmethode aufruft, befindet sich der Thread im ausführbaren Zustand. Der Thread in diesem Zustand kann ausgeführt werden oder auch nicht (d. h. der laufende Thread in der Java-Spezifikation befindet sich immer noch im ausführbaren Zustand). Es kehrt auch in den ausführbaren Zustand zurück, nachdem der Thread ausgeführt wurde oder nachdem er aus dem blockierenden, wartenden oder schlafenden Zustand zurückgekehrt ist.

Blockierter Thread:

 In diesem Zustand handelt es sich um ein Szenario, in dem mehrere Threads synchronisierte Vorgänge ausführen, z. B. das Warten auf die Ausführung eines anderen Threads Der synchronisierte Block wird freigegeben oder jemand anderes ruft die Methode wait () im wiedereintretenden synchronisierten Block auf, dh der Thread wartet darauf, in den kritischen Abschnitt einzutreten.

Wartender Thread:

Dieser Zustand bedeutet, dass der Thread, nachdem er eine bestimmte Sperre besitzt, seine Wartemethode aufruft oder der Thread die Join-Methode aufruft, um einem anderen Thread beizutreten . Der Thread wartet auf das Ende der Ausführung des Threads, dem er beitritt. Hier müssen wir den Unterschied zwischen Blockierungszustand und Wartezustand unterscheiden. Einer wartet darauf, außerhalb des kritischen Punkts einzutreten, und der andere wartet innerhalb des kritischen Punkts.

Timing-Warte-Thread:

Wenn ein Thread eine Methode mit einem Timeout-Parameter aufruft, führt dies dazu, dass der Thread in einen Timing-Wartezustand wechselt. Methoden mit Supermarkt-Parametern umfassen Thread.sleep, Object.wait, Thread.join, Lock.tryLock und die Timing-Version von Condition.await.

Beendeter Thread:

 1) Der Thread stirbt auf natürliche Weise ab, da die Ausführungsmethode normal beendet wird.

 2) Unerwarteter Tod, weil eine nicht abgefangene Ausnahme die Ausführungsmethode beendet hat.

Übergang zwischen Thread-Zuständen:

   

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung verschiedener Zustände von Java-Threads. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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