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!