Tengo una aplicación multiproceso que tiene que leer algunos datos con frecuencia y, ocasionalmente, esos datos se actualizan. En este momento, un mutex mantiene el acceso a esos datos seguro, pero es caro porque me gustaría que varios subprocesos pudieran leer simultáneamente, y solo bloquearlos cuando se necesita una actualización (el subproceso de actualización podría esperar a que finalicen los otros subprocesos) .
Creo que esto es lo que boost::shared_mutex
se supone que debe hacer, pero no tengo claro cómo usarlo y no he encontrado un ejemplo claro.
¿Alguien tiene un ejemplo simple que pueda usar para comenzar?