У меня многопоточное приложение, которое часто читает некоторые данные, и иногда эти данные обновляются. В настоящий момент мьютекс сохраняет доступ к этим безопасным данным, но это дорого, потому что я хотел бы, чтобы несколько потоков могли читать одновременно и блокировать их только тогда, когда требуется обновление (поток обновлений может дождаться завершения остальных потоков).
Я думаю, что это то, что должен делать boost::shared_mutex
, но я не понимаю, как его использовать, и не нашел ясного примера.
Есть ли у кого-нибудь простой пример, который я мог бы использовать для начала?