Vous êtes sur la page 1sur 1

Exercice 2 

(12 pts)
Dans un lieu de travail, il existe un grand nombre de bureaux et deux types de travailleurs : les
employés de bureaux et les nettoyeurs. Les travailleurs se comportent comme suit:

- Les employés de bureaux peuvent arriver à leurs bureaux à tout moment. Pour démarrer son
travail dans son bureau, il attend jusqu’à ce qu’un bureau soit nettoyé. (pas obligatoirement le
même bureau utilisé avant). Après avoir travaillé pendant une durée quelconque, il quitte le
bureau, ce qui nécessite un nettoyage.
- Un nettoyeur travaille sur un bureau à la fois. Chaque nettoyeur attend jusqu’à ce qu’un
travailleur quitte un bureau ; à ce moment il commence à nettoyer le bureau, puis indique que
le nettoyage de ce bureau est terminé.

On se propose de donner une solution à ce problème en utilisant les moniteurs.

1 / Pour développer la classe moniteur, on vous demande de :

- Déclarer deux listes : qui contiennent respectivement les bureaux sales et nettoyés.
- Ecrire la méthode demander_bureau () qui renvoie un objet de type bureau. Ce bureau
est sale.
- Ecrire la méthode recuperer_bureau () qui renvoie un objet de type bureau. Ce bureau
est nettoyé.
- Ajouter tout le nécessaire (méthodes, variables) pour donner le code complet de la
classe moniteur

2 / Donner le code de la classe principale, ainsi que le code des Threads.

Vous aimerez peut-être aussi