Sobrecarga de mutexes pthread?

Eu estou tentando fazer uma API de C ++ (para Linux e Solaris) thread-safe, para que suas funções podem ser chamadas de threads diferentes sem quebrar estruturas de dados internas. Na minha abordagem atual, estou usando mutexes pthread para proteger todos os acessos a variáveis ​​de membro. Isso significa que uma simples função getter agora bloqueia e desbloqueia um mutex, e eu estou preocupado com a sobrecarga disso, especialmente porque a API será usada principalmente em aplicativos single-threaded onde qualquer bloqueio mutex parece ser uma sobrecarga pura.

Então, eu gostaria de perguntar:

Você tem alguma experiência com o desempenho de aplicativos single-threaded que usam o bloqueio versus aqueles que não o fazem?quão caras são essas chamadas de bloqueio / desbloqueio, em comparação com, por exemplo. um simples acesso "return this-> isActive" para uma variável de membro bool?você conhece melhores maneiras de proteger esses acessos variáveis?

questionAnswers(9)

yourAnswerToTheQuestion