Re[2]: std::shared_mutex vs std::mutex
От: xoreaxeax  
Дата: 18.02.15 17:00
Оценка:
Здравствуйте, watchmaker, Вы писали:

W>Здравствуйте, xoreaxeax, Вы писали:



X>>но до конца не понял, когда реально имеет смысл использовать shared_mutex.

W>shared_mutex необходим когда нужен не только эксклюзивный доступ к защищаемому объекту, но и разделяемый. Просто mutex может организовать лишь эксклюзивный доступ.

X>>При каких количествах тредов, времени выполнения задач.

W>Это не относится к выбору std::shared_mutex vs std::mutex. Ну за исключением разных граничных случаев: например, если поток только один, то shared_mutex можно заменить на mutex.
W>Выбор же делается исходя из набора необходимых операций с данными: если программа выиграет от разделяемого доступа, то нужно задуматься об использовании shared_mutex.

X>>Может быть кто-то может реальный кейс использования рассказать?

W>Задача о читателях-писателях — классика. Возникает везде, где один объект читают и обновляют несколько потоков.
W>Ну, например, работа с базой данных: много читателей могут одновременно читать из одной и той же таблицы не мешая друг-другу. Но обновление данных в таблице должно быть отделено как от операций чтения, так и от других обновлений.


Это все и так понятно. Я вот и спрашиваю про то- при каких конкретно случаях(в примерах), перформанс будет лучше. Ибо я так понимаю, что не все так однозначно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.