C++ API (Linux および Solaris 用) をスレッドセーフにしようとしています。これにより、内部データ構造を壊すことなく、その関数を異なるスレッドから呼び出すことができます。私の現在のアプローチでは、メンバー変数へのすべてのアクセスを保護するために pthread ミューテックスを使用しています。これは、単純なゲッター関数がミューテックスをロックおよびロック解除することを意味します。この API は主に、ミューテックス ロックが純粋なオーバーヘッドのように見えるシングル スレッド アプリで使用されるため、特にこのオーバーヘッドが心配です。
だから、私は尋ねたい:
- ロックを使用するシングル スレッド アプリとロックを使用しないアプリのパフォーマンスを比較した経験はありますか?
- これらのロック/ロック解除呼び出しは、たとえばと比較してどれくらい高価ですか。boolメンバー変数への単純な「return this->isActive」アクセス?
- そのような変数アクセスを保護するより良い方法を知っていますか?