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