Heim >Java >javaLernprogramm >Fortgeschrittene Java-Kenntnisse – sechs Thread-Zustände
Thread-Status
Threads haben die folgenden 6 Status:
New
(neu erstellt)
Runnable
(ausführbar)
Blocked
(blockiert)
Waiting
(wartend)
Timed waiting
(zeitgesteuertes Warten)
Terminated
(Beendet)
Um den aktuellen Status eines Threads abzurufen, können Sie unter anderem die getState-Methode aufrufen.
Java-bezogene Videoempfehlungen: Java-Video
Unten wird jeder Status erklärt
Neu erstellter Thread (Neu)
Wenn wir den neuen Operator zum Erstellen eines Threads verwenden, z. B. bei Verwendung von new Thread(r), wurde der Thread noch nicht ausgeführt und der Code im Thread wurde zu diesem Zeitpunkt noch nicht ausgeführt erhält den Status „Neu“.
2. Ausführbarer Thread (Runnable)
Wenn wir die start()-Methode für einen Thread ausführen, wird der Thread gestartet. Beachten Sie jedoch, dass ein Thread in einem ausführbaren Zustand je nach Zeitscheibenplanung des Betriebssystems möglicherweise ausgeführt wird oder nicht. Das präventive Planungssystem weist jedem auszuführenden Thread eine Zeitscheibe zu. Nachdem die Zeitscheibe aufgebraucht ist, entzieht das Betriebssystem ihm das Recht zur Ausführung und wählt den nächsten auszuführenden Thread basierend auf der Priorität aus.
3. Blockiert, wartend (Blockiert, wartend, Zeitgesteuertes Warten)
Wenn sich ein Thread im blockierten und wartenden Zustand befindet, führt er keine Arbeit aus. und Es wird kein Code ausgeführt. bis das Betriebssystem es wieder aktiviert.
Wenn ein Thread versucht, eine interne Objektsperre zu erlangen, und diese Sperre von einem anderen Thread gehalten wird, wechselt der Thread in den Blockierungszustand. Wenn andere Threads die Sperre aufheben, lässt der Thread-Scheduler zu, dass der Thread mit gehalten wird Dadurch wird der Thread nicht mehr blockierend.
Wenn ein Thread darauf wartet, dass ein anderer Thread den Scheduler über eine Bedingung benachrichtigt, wechselt er in den Wartezustand und ruft dann die Object.wait-Methode oder die Thread.join-Methode auf. Diese Situation tritt auf. Es gibt einen großen Unterschied zwischen dem blockierten Zustand und dem Wartezustand.
Mehrere Methoden verfügen über einen Timeout-Parameter. Ihr Aufruf führt dazu, dass der Thread in einen zeitgesteuerten Wartezustand wechselt, der beibehalten wird, bis das Timeout abläuft oder eine entsprechende Benachrichtigung empfangen wird. Methoden mit Timeout-Parametern sind: Thread.sleep
und Object.wait
, Thread.join
, Lock,tryLock
und die zeitgesteuerte Version von Condition.await
.
4. Der beendete Thread
Es gibt zwei Gründe für die Thread-Beendigung:
Weil die run()-Methode nach der Ausführung normal beendet wird
Die Ausführungsmethode wurde aufgrund einer nicht abgefangenen Ausnahme beendet, was zu einem unerwarteten Tod führte
5. Zusammenfassung
Empfohlene verwandte Artikel und Tutorials: Einführung in die Java-Programmierung
Das obige ist der detaillierte Inhalt vonFortgeschrittene Java-Kenntnisse – sechs Thread-Zustände. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!