スレッド間でアクセスされるオブジェクト (一種のキュー) があります。いずれかのスレッドで使用される前に、キュー オブジェクトをミューテックス ロックすることができます。
これを管理するより簡単な方法は、ロックをキュー オブジェクト自体の内部に持ち込むことです。したがって、すべての API はキューをロックし、作業が完了すると解放します。このように、スレッドは各キューとともに追加のミューテックス変数を管理する必要がありません。
私の質問は、キューにアクセスしているスレッドが1つしかない場合があることです(ローカル変数であるとします)。しかし、本質的に、キューは最初に内部データ構造をロックし、終了する前にロックを解除するため、これはコストのかかる作業になるのでしょうか?
スレッド同期が特に必要ない場合、冗長なmutex_lockおよびmutex_unlock操作はどのくらいコストがかかりますか?
PS: 私の質問はこれに少し関連しています:ロックされていないミューテックスをロックするのはどのくらい効率的ですか? ミューテックスのコストはいくらですか?
しかし、私は自分のデザインとその理由の理解において特定の答えを探しています。
私は C と pthread ライブラリを使用しています。