Narzut muteksów pthread?

Próbuję uczynić C ++ API (dla Linux i Solaris) bezpiecznym dla wątków, aby jego funkcje mogły być wywoływane z różnych wątków bez zrywania wewnętrznych struktur danych. W moim obecnym podejściu używam muteksów pthread do ochrony wszystkich dostępów do zmiennych składowych. Oznacza to, że prosta funkcja gettera blokuje i odblokowuje mutex, a ja martwię się o to, ponieważ API będzie używane głównie w aplikacjach jednowątkowych, w których blokowanie mutexów wydaje się być czystym obciążeniem.

Chciałbym zapytać:

czy masz jakieś doświadczenia z wydajnością aplikacji jednowątkowych, które używają blokowania w porównaniu z tymi, które nie działają?jak kosztowne są te połączenia blokujące / odblokowujące w porównaniu z np. prosty dostęp „return this-> isActive” dla zmiennej składowej bool?Czy znasz lepsze sposoby ochrony takich zmiennych dostępów?