Когда мы должны использовать мьютекс и когда мы должны использовать семафор - PullRequest
102 голосов
/ 28 октября 2010

Когда мы должны использовать мьютекс и когда мы должны использовать семафор?

Ответы [ 11 ]

1 голос
/ 28 октября 2010

Как указывалось, семафор с числом единиц - это то же самое, что и «двоичный» семафор, который совпадает с мьютексом.

Основные вещи, которые я видел в семафорах сзначение больше, чем используется для ситуаций производителя / потребителя, в которых у вас есть очередь определенного фиксированного размера.

У вас есть два семафора.Первый семафор изначально устанавливается равным количеству элементов в очереди, а второй семафор устанавливается равным 0. Производитель выполняет операцию P с первым семафором, добавляет в очередь.и делает операцию V на втором.Потребитель выполняет операцию P со вторым семафором, удаляет из очереди, а затем выполняет операцию над первым.

Таким образом, производитель блокируется всякий раз, когда он заполняет очередь, а потребитель блокируется.всякий раз, когда очередь пуста.

...