Monitor grupuje dane (zmienne) oraz operacje na tych danych podobnie jak klasa w programowaniu obiektowym, jednak z pewnymi różnicami:
• Wszystkie pola monitora są prywatne, tzn. nie do nich bezpośredniego dostęp z zewnątrz monitora.
• Tylko jeden proces może jednocześnie wykonywać operację monitora, co gwarantuje zachowanie spójnych wartości pól monitora - wykonanie operacji monitora jest atomowe.
• Metody monitora nie powinny odwoływać się do żadnych zmiennych globalnych.