Почему С++ 0x стандартный комитет отклонил boost:: shared_mutex?
Есть ли у вас информация о предмете? любая проблема с boost:: shared_mutex в частности и с мьютексами для чтения-записи вообще?
мьютекс-считыватель-писатель может быть неправильно использован, например. частое блокирование записи снижает производительность даже в сравнении с простыми мьютексами. но есть много случаев, когда многим читателям часто требуется общий ресурс, который может быть изменен автором нечасто.
Ответы
Ответ 1
Энтони Уильямс является влиятельным членом комитета стандартов С++. Он был соавтором многих предложений, которые привели к включению библиотеки потоков в стандарт С++ 11. Вы можете прочитать его возражения в этот комментарий. Тем не менее, он сделал это на С++ 17.
Ответ 2
Как сказано в почте, на которое ссылается Ганс, проблема с shared_mutex
- это его высокие накладные расходы. Поэтому shared_mutex
дает только преимущество, когда ресурсы хранятся в течение длительного времени, и только несколько потоков конкурируют за ресурсы, что очень редко.
Я нашел еще одну подробную статью о проблеме.