Семафоры являются механизмом блокировки, iirc они могут быть концептуально сконфигурированы, чтобы разрешить множественный доступ к объекту; например Доступ к трем за раз, четырем за раз и т. Д.
Мьютекс является частным случаем семафора для обеспечения взаимного исключения, т.е. только один может получить доступ к защищенному ресурсу в любой момент времени.
Важно отметить, что ни семафор, ни мьютекс не обеспечивают строгого упорядочения при ожидании доступа к общему ресурсу. Когда ресурс становится доступным, некоторый ожидающий поток получит доступ, но не будет сделано никаких гарантий относительно того, какой поток будет. По статистике, в конечном итоге все потоки будут (должны) получать доступ.
Монитор обеспечивает приоритет для ожидающих потоков / процессов, помещая их в очередь в определенном порядке, не обязательно так, как они поступают. Операционная система является примером монитора - обеспечение того, что один процесс имеет ЦП в любой момент времени.