Statut du fil de discussion
Les fils de discussion ont les 6 statuts suivants :
New
(nouvellement créé)
Runnable
(exécutable)
Blocked
(bloqué)
Waiting
(en attente)
Timed waiting
(en attente chronométrée)
Terminated
(Terminé)
Parmi eux, pour obtenir l'état actuel d'un thread, vous pouvez appeler la méthode getState.
Recommandations vidéo liées à Java : Vidéo Java
Ci-dessous, chaque statut est expliqué
1. >
Lorsque nous utilisons l'opérateur new pour créer un thread, comme lors de l'utilisation de new Thread(r), le thread n'a pas commencé à s'exécuter et le code dans le thread n'a pas commencé à s'exécuter pour le moment. devient Nouveau statut.2. Runnable thread (Runnable)
Lorsque nous exécutons la méthode start() sur un thread, le thread sera démarré. Mais notez qu'un thread dans un état exécutable peut être en cours d'exécution ou non, en fonction de la planification des tranches de temps du système d'exploitation. Le système de planification préemptive alloue une tranche de temps à chaque thread à exécuter une fois la tranche de temps épuisée, le système d'exploitation le privera du droit de s'exécuter et sélectionnera le thread suivant à exécuter en fonction de la priorité.3. Bloqué, état d'attente (Bloqué, en attente, Attente chronométrée)
Lorsqu'un thread est à l'état bloqué et en attente, il n'effectue aucun travail, et Aucun code n'est exécuté. jusqu'à ce que le système d'exploitation le réactive. Lorsqu'un thread tente d'acquérir un verrou d'objet interne et que ce verrou est détenu par un autre thread, le thread entre dans l'état de blocage lorsque d'autres threads libèrent le verrou et le planificateur de thread permet au thread de conserver With. cela, le fil deviendra non bloquant. Lorsqu'un thread attend qu'un autre thread informe le planificateur d'une condition, il entre dans l'état d'attente, puis appelle la méthode Object.wait ou la méthode Thread.join. Cette situation se produit. Il existe une grande différence entre l’état bloqué et l’état en attente. Plusieurs méthodes ont un paramètre timeout. Leur appel fait entrer le thread dans un état d'attente temporisé, qui est conservé jusqu'à l'expiration du délai d'attente ou jusqu'à ce qu'une notification appropriée soit reçue. Les méthodes avec des paramètres de délai d'attente sont : et Thread.sleep
, Object.wait
, Thread.join
et la version chronométrée de Lock,tryLock
. Condition.await
4. Le thread terminé
Il y a deux raisons pour l'arrêt du thread :Parce que la méthode run() se termine normalement après l'exécution.
La méthode run s'est terminée en raison d'une exception non interceptée, entraînant une mort inattendue
Résumé
Articles et tutoriels connexes recommandés :Introduction à la programmation Java
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!