« Programmation Java/Processus légers et synchronisation » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 58 :
 
==Actions sur un thread==
 
===Cycle de vie d'un thread===
Un thread possède différents états gérés par le système :
* état ''prêt'' : le thread est prêt à être exécuté,
* état ''suspendu'' : le thread est suspendu (attente d'une ressource),
* état ''exécution'' : le thread est en cours d'exécution,
* état ''terminé'' : le thread a achevé son exécution ou a été interrompu.
 
===InterruptedException===
Cette classe d'exception est lancée par les méthodes de la classe <code>Thread</code> et celle de la classe <code>Object</code> demandant la suspension pour un temps indéterminé du thread courant (attente en général).
 
Cette exception est lancée quand le thread en attente est interrompu.
Capturer cette exception permet d'interrompre l'attente, et libérer des ressources pour terminer proprement.
 
===Attendre la fin d'un thread===
La méthode <code>join()</code> de la classe <code>Thread</code> peut être appelée pour attendre la fin d'un thread.
 
Exemple :
th.wait(); // InterruptedException à capturer
 
===Interrompre un thread===
La méthode <code>interrupt()</code> de la classe <code>Thread</code> peut être appelée pour interrompre un thread.
Cette méthode provoque le lancement d'une exception de type <code>InterruptedException</code> quand le thread appelle une méthode d'attente.
 
==Synchronisation==