return true;
public method deposit(int amount) { if amount < 0 then error "Amount cannot be negative"; else then balance := balance + amount;
O wątku wykonującym metodę monitora mówimy, że zajmuje on monitor. Monitory projektowane są w taki sposób, aby w dowolnej chwili co najwyżej jeden wątek mógł je zajmować. Zapewnia to właściwość wzajemnego wykluczania.
Gdy wątek próbuje wywołać metodę monitora, musi zaczekać, dopóki inny wątek nie skończy swojej pracy na obiekcie. Zauważmy, że gdyby w podanym przykładzie zezwolić dwóm wątkom na jednoczesne wykonywanie pobierz(), aby pobrać kwotę 1000 zł, właściciel konta mógłby zyskać pieniądze bez żadnego powodu. Każdy z wątków pobrałby najpierw aktualny stan konta, zmniejszył go o 1000 zł, a następnie zapisał z powrotem do pola kwota, nie wiedząc, że dokładnie w tym samym czasie drugi zrobił identyczną operację. Ostatecznie pomimo pobrania łącznie 2000 złotych na koncie stwierdzilibyśmy ubytek połowy tej sumy.
W najprostszej implementacji wzajemne wykluczanie musi być zapewnione przez kompilator, co sprowadza się zazwyczaj do dodania do każdego obiektu monitora semafora, który początkowo jest podniesiony.