Maison >Java >javaDidacticiel >Quel est le cycle de vie d'un fil ?

Quel est le cycle de vie d'un fil ?

青灯夜游
青灯夜游original
2018-12-15 17:06:1513583parcourir

Le cycle de vie d'un thread, c'est-à-dire que l'état du thread comporte 5 étapes : nouvel état (nouveau), état prêt (exécutable), état en cours d'exécution (en cours d'exécution), état bloqué (bloqué) et état de mort (mort) .

Quel est le cycle de vie d'un fil ?

Lorsqu'un thread est créé et démarré, il n'entrera pas dans l'état d'exécution dès son démarrage, ni ne sera toujours dans l'état d'exécution, mais passera par 5 états. Cet article vous donnera le cycle de vie des threads et vous permettra de comprendre les cinq états des threads. [Tutoriels vidéo associés recommandés : Tutoriel Java]

Nouvel état (Nouveau)

Lorsque le programme utilise le nouveau mot-clé Une fois qu'un thread est créé, le thread est dans l'état nouvellement créé. Exemple :

Thread t = new MyThread();

Quel est le cycle de vie d'un fil ?

État prêt (Runnable)

Après avoir appelé la méthode start() , Le thread sera dans l'état prêt ; à ce moment, cela peut seulement signifier que le thread est prêt à être exécuté, ce qui signifie qu'il peut s'exécuter, mais ce n'est pas encore un thread en cours d'exécution.

État d'exécution (Running)

Lorsque le thread obtient la planification du planificateur de thread dans la JVM, le thread sera en cours d'exécution state et start Le corps d'exécution du thread qui exécute la méthode run().

Bloqué

Il s'agit d'un fil de discussion toujours actif mais qui n'est actuellement pas éligible (pour une raison quelconque, il abandonne temporairement les droits d'utilisation du CPU, l'état d'arrêt de l'exécution).

Trois états de blocage :

1. En attente de blocage :

1) Le thread appelle la méthode wait() pour mettre ce thread en état d'attente ; >

2) Appelez la méthode join() pour mettre ce thread dans un autre état d'attente : attendre que le thread se termine ou expire.

2. Blocage synchrone

Un thread entrera dans cet état de blocage après avoir tenté d'obtenir un échec du moniteur de synchronisation (détenu par d'autres threads).

3. Autres blocages

Appelez la méthode sleep() pour abandonner activement les ressources CPU occupées ; ou appelez une méthode IO bloquante et émettez une requête d'E/S pour entrer dans cet état de blocage.

Explication : le thread bloqué entrera à nouveau dans l'état prêt au moment approprié (une fois le blocage libéré) et attendra que le planificateur de thread le planifie à nouveau.

État mort (Dead)

Lorsque vous quittez la méthode run(), le thread mourra naturellement et sera dans l'état terminé ou mort , aussi Cela met fin au cycle de vie.

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn