Heim >Java >javaLernprogramm >Fortgeschrittene Java-Kenntnisse – sechs Thread-Zustände

Fortgeschrittene Java-Kenntnisse – sechs Thread-Zustände

王林
王林nach vorne
2019-11-26 11:44:593247Durchsuche

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

Fortgeschrittene Java-Kenntnisse – sechs Thread-Zustände

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen