Maison  >  Article  >  Le cycle de vie d'un thread est divisé en plusieurs parties

Le cycle de vie d'un thread est divisé en plusieurs parties

清浅
清浅original
2019-04-02 17:41:4949150parcourir

Le cycle de vie d'un thread est divisé en cinq parties : nouveau, prêt, en cours d'exécution, blocage et mort. Étant donné que le processeur doit basculer entre plusieurs threads, l'état du thread basculera également entre plusieurs exécutions et blocages

Le cycle de vie d'un thread est divisé en plusieurs parties

[Cours recommandé : Tutoriel Langage C

Lorsqu'un thread est créé et démarré, il n'entre ni dans l'état d'exécution dès son démarrage, ni ne reste dans exécution tout le temps. Dans le cycle de vie d'un thread, il passe par cinq états : Nouveau, Exécutable, En cours d'exécution, Bloqué et Mort. Surtout après le démarrage d'un thread, il ne peut pas toujours "occuper" le processeur pour s'exécuter seul, le processeur doit donc basculer entre plusieurs threads, de sorte que l'état du thread basculera entre l'exécution et le blocage plusieurs fois.

Cinq états du cycle de vie

Nouveau Thread)

Lors de la création d'une instance de la classe Thread (objet) , ce thread entre dans le nouvel état (non démarré).

Par exemple :

Thread  t1=new Thread();

Prêt (exécutable)

Le thread a été démarré et est en attente d'être alloué à la tranche de temps CPU , c'est-à-dire qu'à ce moment, le thread attend dans la file d'attente prête pour obtenir les ressources CPU

Par exemple :

t1.start();

En cours d'exécution (en cours d'exécution)

Le thread obtient des ressources CPU Exécutez la tâche (méthode run()). À ce moment, à moins que ce thread n'abandonne automatiquement les ressources CPU ou qu'un thread avec une priorité plus élevée n'entre, le thread s'exécutera jusqu'à la fin.

Bloqué

Pour une raison quelconque, le thread en cours d'exécution abandonne le processeur et suspend sa propre exécution, c'est-à-dire qu'il entre dans l'état bloqué.

Veille : utilisez la méthode sleep(long t) pour mettre le fil en mode veille. Un thread en veille peut entrer dans l'état prêt une fois le temps spécifié écoulé.

En attente : Appelez la méthode wait(). (Appelez la méthode motivate() pour revenir à l'état prêt)

Bloqué par un autre thread : appelez la méthode suspend(). (Appelez la méthode curriculum vitae() pour reprendre)

Mort (mort)

Lorsque le thread termine son exécution ou est tué par d'autres threads, le thread entre dans l'état de mort .À ce stade, le thread Il n'est plus possible d'entrer dans l'état prêt et d'attendre l'exécution.

Terminaison naturelle : terminez après avoir exécuté la méthode run() normalement

Terminaison anormale : appelez la méthode stop() pour empêcher un thread de s'exécuter

Résumé : ce qui précède est le résumé de cet article Tout le contenu, j'espère qu'il sera utile à tout le monde

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