L'environnement d'exploitation de ce tutoriel : système Windows 7, version Java 10, ordinateur DELL G3.
1. Nouveau : Les threads qui n'ont pas été démarrés après la création sont dans cet état.
2. Runnable : inclut Running et Ready dans l'état du thread du système d'exploitation. Autrement dit, le thread dans cet état peut être en cours d'exécution ou il peut attendre que le système d'exploitation lui alloue du temps d'exécution.
3. En attente : les threads dans cet état ne se verront pas allouer de temps d'exécution du processeur. Ils doivent attendre d'être explicitement réveillés par d'autres threads. La méthode suivante fera tomber le thread dans un état d'attente :
La méthode Object::wait() ne définit pas le paramètre Timeout ;
Méthode Thread::join() sans définir le paramètre Timeout ;
Méthode LockSupport::park().
4. Attente temporisée : les threads dans cet état ne se verront pas attribuer de temps d'exécution du processeur, mais ils n'ont pas besoin d'attendre d'être explicitement réveillés par d'autres threads. Ils seront automatiquement réveillés par le système après un certain temps. La méthode suivante mettra le thread dans un état d'attente de date limite :
Méthode Object::wait() avec le paramètre Timeout défini ;
Méthode Thread::join() avec le jeu de paramètres Timeout ;
Méthode LockSupport :: parkNanos ();
Méthode LockSupport::parkUntil().
5. Bloqué : le thread est bloqué. La différence entre "l'état bloqué" et "l'état en attente" est que "l'état bloqué" attend d'acquérir un verrou exclusif. Cet événement se produit lorsqu'un autre thread abandonne le verrou. "l'état d'attente" est l'attente pendant un certain temps ou que l'action de réveil se produise. Le thread entrera dans cet état pendant que le programme attend d'entrer dans la zone de synchronisation.
6. Terminé : L'état du thread du thread terminé, le thread a terminé son exécution.
Voici les six états des threads Java. J'espère qu'ils pourront être utiles à tout le monde.
Plus de guide d'apprentissage Java : tutoriel Java