• W wielu przypadkach mogą zaistnieć dodatkowe powody, dla których proces powinien zostać wstrzymany już po wejściu do monitora
• Definiowane są tzw. warunki (ang. conditions), na których można wykonywać tylko dwie operacje:
• wait() - usypia proces w oczekiwaniu na zajście warunku
• signal() - sygnalizuje zajście warunku - powoduje wybudzenie procesu oczekującego na zajście warunku
• Z każdym warunkiem związana jest niejawna kolejka oczekujących procesów - początkowo pusta.
• Warunki czasem nazywane są zmiennymi warunkowymi -choć nie mają jawnej wartości, którą można odczytać - pełnią raczej rolę „pojemnika na wątki"