Cycle de vie des threads en Java – États des threads en Java

Comprendre le cycle de vie du thread en Java et les états du thread est très important lorsque vous travaillez avec des threads et programmez pour un environnement multithread. De notre dernier tutoriel, nous pouvons créer une classe thread Java en implémentant l’interface Runnable ou en étendant la classe Thread. Cependant, pour démarrer un thread Java, nous devons d’abord créer l’objet Thread et appeler sa méthode start() pour exécuter la méthode run() en tant que thread.

Cycle de vie du thread en Java

Le diagramme ci-dessous montre les différents états du cycle de vie du thread en Java. Nous pouvons créer un thread en Java et le démarrer, mais la transition des états du thread de Runnable à Running à Blocked dépend de l’implémentation du planificateur de threads par le système d’exploitation, et Java n’a pas un contrôle total sur cela.

Nouveau

Lorsque nous créons un nouvel objet Thread en utilisant l’opérateur new, l’état du thread est Nouveau Thread. À ce stade, le thread n’est pas actif et c’est un état interne à la programmation Java.

Runnable

Lorsque nous appelons la fonction start() sur l’objet Thread, son état est modifié en Runnable. Le contrôle est donné au planificateur de threads pour terminer son exécution. Le fait d’exécuter ce thread immédiatement ou de le conserver dans le pool de threads prêts avant de l’exécuter dépend de l’implémentation du planificateur de threads par le système d’exploitation.

Running

Lorsque le thread est en cours d’exécution, son état est modifié en Running. Le planificateur de threads choisit l’un des threads du pool de threads prêts et modifie son état en Running. Ensuite, le processeur commence à exécuter ce thread. Un thread peut changer d’état pour devenir Runnable, Dead ou Blocked depuis l’état de fonctionnement en fonction du découpage temporel, de l’achèvement du thread de la méthode run() ou de l’attente de ressources.

Bloqué/En attente

A thread can be waiting for other thread to finish using thread join or it can be waiting for some resources to available. For example producer consumer problem or waiter notifier implementation or IO resources, then it’s state is changed to Waiting. Once the thread wait state is over, it’s state is changed to Runnable and it’s moved back to runnable thread pool.

Mort

Une fois que le fil d’exécution a terminé son exécution, son état est changé en « Dead » et il est considéré comme non actif. Ci-dessus sont les différents états du fil d’exécution. Il est bon de les connaître et de comprendre comment le fil d’exécution change son état. C’est tout pour le cycle de vie du fil d’exécution en Java.

Source:
https://www.digitalocean.com/community/tutorials/thread-life-cycle-in-java-thread-states-in-java