TP 5
TP 5
TP 5
U 2021/2022
Section GLSI3 1er novembre 2021
Exercice 2 Sémaphores
Fréquemment, un nombre de threads sont amenés à partager un nombre fixé de ressources
(exemple nombre limité de connexions à une base de données). Un sémaphore permet de
mettre en place le comportement suivant : à chaque fois qu’un thread est autorisé, le nombre
de connexions disponibles est décrémenté d’une unité. A la fin de la connexion, le nombre de
connexions disponibles est incrémenté. S’il ne reste plus de connexions disponibles, les threads
sont bloqués jusqu’à la libération d’une connexion.
1. Implémenter une classe Sémaphore avec deux méthodes :
— acquire () qui laisse le thread continuer s’il y a des connexions disponibles. Le thread
est bloqué sinon.
— release () qui permet au thread de signaler la libération d’une ressource.
2. Trouver deux autres applications des sémaphores.