Это старый вопрос, но одно из самых интересных применений семафора - блокировка чтения / записи, и он явно не упоминался.
Ч / б замки работают простым способом: потребляют одно разрешение для читателя и все разрешения для писателей.
Действительно, тривиальная реализация блокировки чтения и записи, но требует модификации метаданных при чтении (фактически дважды), которая может стать узким местом, все же значительно лучше, чем мьютекс или блокировка.
Другим недостатком является то, что авторы могут запускаться довольно легко, если только семафор не является справедливым или записи не получают разрешения в нескольких запросах, в этом случае им необходим явный мьютекс между собой.
Далее читать :