Семафор и мьютекс, какой из них быстрее? - PullRequest
3 голосов
/ 10 февраля 2011

Если вы рассматриваете двоичный семафор и мьютекс, какой из них быстрее? Я имею в виду, занимает меньше инструкций. Какие дополнительные данные поддерживает мьютекс по сравнению с семафором?

1 Ответ

8 голосов
/ 10 февраля 2011

Это зависит от реализации, но вы, вероятно, обнаружите, что мьютекс был реализован немного быстрее.Мьютексы обычно реализуются с помощью test и set, в то время как семафоры часто реализуются с помощью test и increment или как мьютекс, защищающий переменную, которая увеличивается.

Я бы предложил использовать мьютекс в большинстве случаев, но не из-за скорости;просто потому, что код, написанный с использованием мьютексов, легче понять, так как семантика менее сложна.

...