Expliquer le cycle de vie d'un thread en Java
Cycle de vie des threads (différents états d'un thread)
Il y a peu d'états du cycle de vie des threads ,
- Nouvel État
- État prêt
- État d'exécution
- État mort
- État d'attente
- État de veille
- État suspendu
Nous étudierons tous les états décrits ci-dessus :
1) Nouvel état
Lorsque le fil est instancié ou créé, le fil sera dans un nouvel état.
Syntaxe :
NewThread nt = new NewThread();
2) État prêt
Lorsque nous appelons la méthode start () sur l'objet thread, notre thread sera à l'état prêt (c'est-à-dire prêt à entrer dans l'état d'exécution).
Syntaxe :
nt.start();
3) État d'exécution
Ici, nous discutons d'une chose avant d'entrer dans l'état de fonctionnement. Quel est le rôle du planificateur de threads Le planificateur de threads alloue le processeur aux threads en attente en fonction de la priorité. Notre thread sera en cours d'exécution lorsque le planificateur de threads allouera un processeur au thread signifie que le thread aura une chance de s'exécuter.
4) État mort ou terminé
Lorsque la méthode run() termine son exécution, notre thread sera à l'état mort ou dernier état.
5) En cours d'exécution → Prêt
Si un thread en cours d'exécution appelle la méthode yield(), notre thread en cours d'exécution sera en cours d'exécution à l'état prêt car yield() arrête de s'exécuter et donne une chance à un autre thread en attente.
Syntaxe :
Thread.yield();
6) État d'attente
Si un thread en cours d'exécution appelle la méthode join(), notre thread sera en attente car join() attend jusqu'à ce qu'il termine un autre thread. Si le fil sort de l'état (en attente de prêt), il y a deux conditions :
- Si le fil d'attente a été interrompu.
- Si le délai expire.
Syntaxe :
obj.join();
7) État de veille
Si un thread en cours d'exécution appelle la méthode sleep(), notre thread entrera en état de veille et il y a peu de cas où le thread endormi sort de (dormir à l'état prêt):
- Si le délai expire.
- Si le fil en veille a été interrompu.
Syntaxe :
Thread.sleep();
7) État suspendu
Lorsqu'un thread en cours d'exécution appelle la méthode suspend(), notre thread en cours d'exécution sera dans un état suspendu et le thread suspendu sortira dans un état prêt en appelant la méthode resume().
Syntaxe :
obj.suspend();
En savoir plus...
- Comment créer des threads Java (exemples Java pour créer des threads) ?
- Synchronisation des threads en Java avec exemple.
- Programme Java pour montrer un exemple de thread.
- Programme Java pour rejoindre les discussions.