Attention, les sémaphores et toutes les primitives de synchronisation permettent de synchroniser des processus, mais en aucun cas ne garantissent que cette synchronisation soit exempte de problème.
Soient les deux sémaphores S1(1,vide) et S2(1,vide). les processus P1 et P2 suivant peuvent se bloquer mutuellement.
processus P1 processus P2 debut debut wait(S1); wait(S2); wait(S2); wait(S1); ... ... fin fin