Program opuszcza go automatycznie, gdy jakiś wątek próbuje wywołać metodę i podnosi z powrotem, gdy z metody wychodzi.

Oczekiwanie na warunki W wielu sytuacjach wzajemne wykluczanie nie wystarcza. Wątki próbujące wykonać pewną operację mogą wymagać zaczekania na spełnienie określonego warunku aby móc kontynuować. Zwykłe aktywne czekanie przy pomocy pętli nie wystarcza:

while not (P) do pomiń

Wątek w dalszym ciągu zajmuje monitor, przez co nikt inny nie ma szans na zmianę jego stanu i spełnienie warunku. Rozwiązaniem są zmienne warunkowe. Zmienna warunkowa jest kolejką wątków przypisaną do monitora, które oczekują na jakiś skojarzony z nią przez programistę warunek Uznaje się, że wątki znajdujące się w kolejce nie zajmują monitora, dzięki czemu inny wątek może wykonać na nim operację, dzięki której stanie się prawdziwe. W większości implementacji ma on dodatkowo możliwość powiadomienia wątków z kolejki, że warunek został spełniony i mogą one wznowić swoje wykonywanie.

Zmienne warunkowe muszą udostępniać dwie podstawowe operacje: