взаимное исключение pthreads по сравнению с семафором

Каково различие между семафорами и взаимным исключением, обеспеченным pthread библиотекой?

70
задан Sagar Jain 16 July 2014 в 05:24
поделиться

2 ответа

Семафоры имеют синхронизированный счетчик, а Mutex являются просто двоичными (True / false).

Семафор часто используется в качестве окончательного механизма ответа на то, сколько элементов ресурса используются - например, объект, представляющий n рабочие потоки, может использовать семафор, чтобы подсчитать, сколько рабочих потоков доступны.

Правда заключается в том, что вы можете представлять семафор с помощью INT, который синхронизируется Mutex.

76
ответ дан 24 November 2019 в 13:28
поделиться

MUTEX используется для избежания состояния расы между несколькими нитями.

В то время как семафор используется в качестве синхронизации элемента, используемого в течение нескольких процессов.

Mutex не может быть заменен двоичным семафором, поскольку один процесс ожидает семафора, в то время как другие выпускают семафор. В случае, если Mutex как приобретение, так и релиз обрабатывается одинаковым.

7
ответ дан 24 November 2019 в 13:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: