Ожидание мьютекса против ожидания семафора с точки зрения времени процессора - PullRequest
0 голосов
/ 11 мая 2018

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

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

Буду признателен, если вы объясните, есть ли разница или нет.

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

1 Ответ

0 голосов
/ 11 мая 2018

Конечно, это зависит от используемой вами ОС и реализации компилятора.

Однако, поскольку мьютекс может быть реализован как версия семафора, тогда в худшем случае мьютекс будет работать каксемафор.Не было бы причины кодировать его менее эффективно.

...