![]() |
Threads et exclusion mututelle |
Ecrire une classe Printer implantant l'interface
java.lang.Runnable qui contient un identifiant (entier),
une durée et un texte.
La méthode run() se contentera d'afficher
toute les durées miliseconds un message contenant l'identifiant
suivi du texte
id 1 - Texte1 id 2 - Texte2Utiliser Thread.sleep() pour faire patienter le programme.
On cherche à étudier le comportement d'un objet modifié par plusieurs threads.
Créer deux instances de la classe Imp construites avec la même instance de Point, p et des valeurs différentes (par exemple, Imp(p,1) pour l'un et Imp(p,2) pour l'autre). Démarrer les deux instances. Quels sont les différents affichages possibles pour le point ? On corrigera ce problème dans la planche de TD suivante .
Écrire un programme qui créé et démarre dix processus légers exécutant les
méthodes run de dix instances d'une classe Bill
implantant Runnable. Chaque processus léger exécutera une boucle
infinie affichant un message l'identifiant.
Le but du jeu est qu'un utilisateur tape au clavier l'identifiant d'un
processus léger et que celui-ci disparaisse (qu'il soit interromptu)
en affichant "ahhhh je meurs" suivi de son identifiant.
On désire développer une petite application simulant les comportements concurrents d'un ensemble de producteurs et de consommateurs de messages. D'un côté, les producteurs produisent des messages qu'ils stockent dans une file d'attente commune ; de l'autre, les consommateurs récupèrent dans ce même buffer les messages (dans l'ordre où ils y ont été placés).
On doit respecter un certain nombre de contraintes et pouvoir paramétrer l'application :
Écrire les classes Producer et Consumer permettant de mettre en oeuvre ces spécifications. Chaque producteur et consommateur sera exécuté par un processus léger (Thread) différent, en concurrence avec les autres. Vous pouvez utiliser d'autres threads.