¿Sobrecarga de mutexes pthread?

Estoy tratando de hacer que la API de C ++ (para Linux y Solaris) sea segura para subprocesos, de modo que sus funciones puedan ser llamadas desde diferentes subprocesos sin romper las estructuras de datos internas. En mi enfoque actual, estoy usando mexhilos para proteger todos los accesos a las variables miembro. Esto significa que una función getter simple ahora bloquea y desbloquea un mutex, y me preocupa la sobrecarga de esto, especialmente porque la API se usará principalmente en aplicaciones de un solo hilo donde cualquier bloqueo mutex parece una sobrecarga.

Entonces, me gustaría preguntar:

¿Tiene experiencia con el rendimiento de aplicaciones de un solo hilo que utilizan el bloqueo en comparación con las que no lo hacen?¿Qué tan caras son estas llamadas de bloqueo / desbloqueo, en comparación con, por ejemplo. ¿Un acceso simple "devolver esto-> esActivo" para una variable miembro bool?¿Conoces mejores formas de proteger tales accesos variables?

Respuestas a la pregunta(9)

Su respuesta a la pregunta