スレッドが枯渇するのを防ぐロック ポリシーが C++11 にあるかどうか疑問に思っています。
1 つのミューテックスをめぐって競合するスレッドが多数あります。さて、私の問題は、クリティカルセクションを離れているスレッドがすぐに同じミューテックスを求めて競合し、ほとんどの場合勝つことです。したがって、ミューテックスを待機している他のスレッドは飢えています。
クリティカル セクションを残して、他のスレッドにミューテックスをロックする機会を与えるために、スレッドを最小限の時間だけスリープさせたくありません。
ミューテックスで待機しているスレッドの公平なロックを有効にするパラメーターが必要であると考えましたが、適切な解決策を見つけることができませんでした。
スレッド実行の順序を再スケジュールすることを想定している std::this_thread::yield() 関数を見つけましたが、これはスケジューラ スレッドへのヒントにすぎず、スレッドを再スケジュールするかどうかはスケジューラ スレッドの実装に依存します。
C++11 で同じミューテックスを待機しているスレッドに公平なロック ポリシーを提供する方法はありますか? 通常の戦略は何ですか?
ありがとう