Artów jako takich nie mam. Rozumiem to "na chłopski rozum"

Semafor reguluje dostęp do zasobów nad jakimi czuwa. Może być binarny lub zliczający. Binarny oznacza po prostu czy do zasobu mogą się dostać procesy czy nie. Niezależnie ile ich jest. Zliczający to po prostu licznik. Jeśli dojdzie do zera, blokuje dostęp.
Mutex decyduje o dostępności do zasobu który nie może być dzielony i w jednej chwili może go używać tylko jeden proces.
Monitor jest już takim "sprytnym" semaforem. Ma możliwość wpuszczenia do zasobu procesu, ale jednocześnie jego metody się blokują, dzięki czemu w jednej chwili może obsługiwać jeden proces. To blokowanie zapewniają mu mutexy.
Podam przykład. Masz lotnisko i hangary oraz pasy startowe. Na pasie zawsze może być jeden samolot. W hangarze też. Na pasy oraz lotnisko jako całość zakładasz po jednym semaforze zliczającym. Informują one czy są wolne pasy i czy hangary na lotnisku także oraz ile wolnych jest. Na każdy hangar i pas zakładasz po monitorze. Informuje on o ich zajętości. Dzięki temu wiesz czy któryś jest zajęty. Przypuśćmy masz 1 pas i 3 hangary. Lądują naraz 2 samoloty. Monitor wpuszcza pierwszy i blokuje metodę "ląduj", by drugi nie próbował lądować w tym samym czasie. Gdy samolot kołuje już do hangaru semafor lotniska (ilość wolnych hangarów) obniżam o jeden, Monitor hangaru ustawiam na pobyt_tankowanie oraz informuje Monitor pasa, że ok. Zwalniam Mutex na metodzie ląduj. Ląduje kolejny samolot i to samo co wyżej. Oba siedzą w hangarach i ładują paliwko. Po jakimś czasie ląduje kolejny i znów historia. Teraz mam już wszystkie hangary zajęte więc lotnisko jest zablokowane i uważam co się dzieje w powietrzu, bo choć pasy mam wolne to wszystkie hangary pełne. Ok... Jeden samolot pełny i startuje. Mam więc wolny hangar i pas. Teraz czas na jaja... Lecą dwa samoloty naraz, a my mamy tylko jeden hangar. Co robimy? Semafor nic nam nie pomoże bo tylko liczy wolne miejsca. Puściłby w takim wypadku pierwszy, który trafi i tak jest najlepiej na razie. Pełne lotnisko blokuje zasoby współdzielone, czyli pas. Teraz dolatuje nasz drugi i sprawa się komplikuje. Każę mu kołować w powietrzu nad lotniskiem. Problem następuje gdy czas życia wątku jest określony i zaczyna on zgłaszać, że "kończy mu się paliwo". Semafor jest głupi. Nie zareaguje. Monitor i mutex są inteligentne. Monitor lotniska jest nam potrzebny! On może przyjmować warunki określone i decydować o tym co się dzieje na lotnisku. W takiej sytuacji mógłby on powiedzieć: "Te... Najlepiej zatankowany - spadaj nad lotnisko kołować lub leć gdzieś w cholerę na inne lotnisko, bo inaczej będziemy mieli katastrofę zaraz.". Sprawę można komplikować do postaci: 2 pasy - 1 hangar. Fajne, gdyż może jednocześnie samolot lądować, a inny startować zaś hangar jest wtedy na krótki okres wolny, ale trzeba uważać, by nie wbić 2 samolotów do jednego hangaru. Czyli metoda ląduj dla jednego pasa i jednego hangaru jednocześnie blokuje metodę ląduj innych pasów. Tak więc jest to świetne zadanie dla monitora całego lotniska by to kontrolował

Tak się najlepiej nauczyć co gdzie się stosuje. Stwórz sobie klasy:
Samolot (stan_paliwa, spalanie) i metodami: startuj(), ląduj(), tankuj_w_hangarze()
Pas (zajętość) i metodami: lądowanie(), start()
Hangar(zajętość) i metodami: zajmij(), tankuj(), wypuść()
Lotnisko(pasy, hangary) i metodami: lądowanie(pas, hangar), wylot(pas, hangar), awaryjne_lądowanie(), kołowanie_nad_lotniskiem()
i zacznij rozważać różne przypadki. Zaczniesz wtedy zauważać że semafor jest głupi i tylko pozwala lub nie na dostęp do wspólnych zasobów (na lotnisku liczy ile wolnych hangarów, nie musi wiedzieć które konkretnie), mutex po prostu blokuje dostęp do zasobu, który jest niepodzielny (pas czy hangar), a monitor to obiekt, który obsługuje wiele obiektów poprzez monitorowanie swoich zasobów. Zezwalając na pracę z jednym obiektem metodami, które blokują się poprzez zastosowanie mutexów. Zrób teraz sobie siatkę X lotnisk, Y samolotów, rozmieść na formatce i spróbuj pomiędzy nimi samolotów nie porozbijać

To klasyczne (oprócz filozofów) zadanie na studiach by załapać o co chodzi z synchronizacją wątków.