共有データ構造にアクセスする必要がある複数のスレッドを持つ C++ で CPU 集中型プログラムを作成しているため、ロックが必要になります。スループットを最大化するために、ボトルネックを最小限に抑えたいと考えています。おそらく 10 分の 9 はデータ構造を読み取るだけで済み、10 分の 1 はそれを変更する必要があるようです。
書き込みロックがすべてをブロックするが、読み取りロックが互いにブロックしないように、スレッドに読み取りまたは書き込みロックを取得させる方法はありますか?
移植可能なソリューションが理想的ですが、Windows 用のソリューションと Linux 用の別のソリューションがあれば問題ありません。