Накладные расходы на мьютексы pthread?
Я пытаюсь сделать API C ++ (для Linux и Solaris) поточно-ориентированным, чтобы его функции можно было вызывать из разных потоков без нарушения внутренних структур данных. В моем текущем подходе я использую мьютексы pthread, чтобы защитить все обращения к переменным-членам. Это означает, что простая функция получения теперь блокирует и разблокирует мьютекс, и я беспокоюсь об этом, особенно потому, что API будет в основном использоваться в однопоточных приложениях, где любая мьютексная блокировка выглядит как чисто служебная информация.
Итак, я хотел бы спросить:
do you have any experience with performance of single-threaded apps that use locking versus those that don't? how expensive are these lock/unlock calls, compared to eg. a simple "return this->isActive" access for a bool member variable? do you know better ways to protect such variable accesses?