Lebenszyklus und Zustände eines Threads in Java

Das Verständnis des Lebenszyklus und der Zustände eines Threads in Java ist sehr wichtig, wenn man mit Threads arbeitet und für eine multithreaded Umgebung programmiert. Aus unserem letzten Tutorial wissen wir, dass wir eine Java-Thread-Klasse erstellen können, indem wir das Runnable-Interface implementieren oder die Thread-Klasse erweitern. Um jedoch einen Java-Thread zu starten, müssen wir zuerst das Thread-Objekt erstellen und seine Start()-Methode aufrufen, um die Run()-Methode als Thread auszuführen.

Lebenszyklus eines Threads in Java

Das untenstehende Diagramm zeigt die verschiedenen Zustände des Lebenszyklus eines Threads in Java. Wir können einen Thread in Java erstellen und starten, aber wie sich die Thread-Zustände von Runnable zu Running zu Blocked ändern, hängt von der OS-Implementierung des Thread-Schedulers ab, und Java hat keine vollständige Kontrolle darüber.

Neu

Wenn wir ein neues Thread-Objekt mit dem new-Operator erstellen, ist der Zustand des Threads Neuer Thread. Zu diesem Zeitpunkt ist der Thread nicht aktiv, und es ist ein Zustand, der intern zur Java-Programmierung gehört.

Runnable

Wenn wir die Start()-Funktion auf ein Thread-Objekt aufrufen, ändert sich sein Zustand in Runnable. Die Kontrolle wird an den Thread-Scheduler übergeben, um seine Ausführung zu beenden. Ob dieser Thread sofort ausgeführt wird oder vor der Ausführung im Runnable-Thread-Pool verbleibt, hängt von der OS-Implementierung des Thread-Schedulers ab.

Running

Wenn ein Thread ausgeführt wird, ändert sich sein Zustand in Running. Der Thread-Scheduler wählt einen der Threads aus dem Runnable-Thread-Pool aus und ändert seinen Zustand in Running. Dann beginnt die CPU mit der Ausführung dieses Threads. Ein Thread kann seinen Zustand von Running in Runnable, Dead oder Blocked ändern, abhängig vom Zeitslicing, der Fertigstellung der Run()-Methode des Threads oder dem Warten auf einige Ressourcen.

Blocked/Wartend

Ein Thread kann darauf warten, dass ein anderer Thread mit Hilfe von Thread-Join fertig wird, oder er kann auf verfügbare Ressourcen warten. Zum Beispiel das Problem des Produzenten und Konsumenten oder die Implementierung von Wartender und Benachrichtigender oder IO-Ressourcen, dann ändert sich sein Zustand in Wartend. Sobald der Wartezustand des Threads vorbei ist, ändert sich sein Zustand in Runnable und er wird zurück in den Runnable-Thread-Pool verschoben.

Tot

Sobald der Thread seine Ausführung beendet hat, ändert sich sein Zustand in Tot und er gilt als nicht mehr aktiv. Das sind die verschiedenen Zustände eines Threads. Es ist gut, sie zu kennen und zu verstehen, wie ein Thread seinen Zustand ändert. Das ist alles zum Lebenszyklus eines Threads in Java.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: