Histoire de chauffage

Considérons un immeuble chauffé par une unique chaudière, composé de 10 appartements tous équipés d'une commande permettant d'augmenter ou diminuer la température de l'eau de la chaudière.

Je sais c'est sans doute une mauvaise idée, mais cela permet de vous proposer un problème simple mettant en avant les problèmes qui peuvent survenir avec les threads.

Pour éviter de faire cuire ou congeler les locataires les commandes sont équipées d'une sécurité qui empêche de trop monter la température ou trop la descendre.

  1. Écrire une classe Chaudiere dont l'état est représenté par une température ;
  2. Écrire une classe Commande, qui interroge la chaudière, et permet de faire varier la température de celle-ci, si celle-ci est pas déjà trop haute ou trop basse.

Il faut maintenant définir le système global, cela peut être fait par une méthode main. Chaque habitant est un "thread" qui possède une commande. Comme on traverse une période froide chacun des habitants va tenter d'augmenter la température cinq fois.

  • Écrire le programme en conséquence.
  • Vérifier le comportement de votre chaudière en affichant sa température.
  • Si votre programme fonctionne correctement expliquer votre code en insistant sur les points essentiels concernant la gestion des threads, sinon modifier le en réfléchissant en particulier au problème de la concurrence d'accès.