Каково различие между семафорами и взаимным исключением, обеспеченным pthread библиотекой?
Семафоры имеют синхронизированный счетчик, а Mutex являются просто двоичными (True / false).
Семафор часто используется в качестве окончательного механизма ответа на то, сколько элементов ресурса используются - например, объект, представляющий n рабочие потоки, может использовать семафор, чтобы подсчитать, сколько рабочих потоков доступны.
Правда заключается в том, что вы можете представлять семафор с помощью INT, который синхронизируется Mutex.
MUTEX используется для избежания состояния расы между несколькими нитями.
В то время как семафор используется в качестве синхронизации элемента, используемого в течение нескольких процессов.
Mutex не может быть заменен двоичным семафором, поскольку один процесс ожидает семафора, в то время как другие выпускают семафор. В случае, если Mutex как приобретение, так и релиз обрабатывается одинаковым.