mutexロックを最初に取得することなく、boost :: condition_variableを「待機」することは可能ですか?それに失敗した場合、これは何とかpthreadのlibを直接使って行うことができますか?boost :: condition_variableロックなしで待機する
簡単にするために、OSレイヤ(Linuxのfutexなど)に直接行かないようにしたいと思います。しかし、私はmutex呼び出しのオーバヘッドも望んでいません。
通常の状況下でこれを行う競合状態をよく知っています。私は別の方法でそれをカバーしている。
boost :: condition_variableの使用パターンを見ると、実際には意味をなさないミューテックスなしで使用されます。入力時に、waitメソッドはミューテックスを原子的にロック解除し、スレッドを待ち行列に追加し、後でミューテックスがロックされたときにロックします。 –