@startuml semaphore title Sémaphore binary "Tâche 1" as t1 concise "Sémaphore" as s binary "Tâche 2" as t2 binary "Tâche 3" as t3 scale 1000 as 100 pixels @0 t1 is low t2 is low t3 is low s is "Verrouillé" @+3000 t1 is high @+400 t1 is low t2 is high s is {-} t1 -> s : lib. s -> t2 : rév. note top of s : T.1 libère la sémaphore\nT.2 est réveillé et verrouille la sémaphore @+400 t2 is low s is "Verrouillé" t2 -> s : verr. @+2200 t1 is high @+400 t1 is low t2 is high s is {-} t1 -> s : lib. s -> t2 : rév. @+400 t2 is low s is "Verrouillé" t2 -> s : verr. @1000 t3 is high @+100 t3 is low @+900 t3 is high @+100 t3 is low @+900 t3 is high @+100 t3 is low @+900 t3 is high @+100 t3 is low @+900 t3 is high @+100 t3 is low @+900 t3 is high @+100 t3 is low @enduml