Ho un'app multithread che deve leggere spesso alcuni dati e occasionalmente tali dati vengono aggiornati. In questo momento un mutex mantiene l'accesso a quei dati al sicuro, ma è costoso perché vorrei che più thread fossero in grado di leggere contemporaneamente e bloccarli solo quando è necessario un aggiornamento (il thread di aggiornamento potrebbe attendere che gli altri thread finiscano) .
Penso che questo sia ciò che boost::shared_mutex
dovrebbe fare, ma non sono chiaro su come usarlo e non ho trovato un esempio chiaro.
Qualcuno ha un semplice esempio che potrei usare per iniziare?