type の共有変数がありdouble
ます。この変数は、2 つのスレッドによってアクセスされます。一方のスレッドは変数を書き込むだけで、もう一方のスレッドは変数を読み取るだけです。
ここでも競合状態が発生しますか? はいの場合、C++ でアトミック アクセスを実装する「簡単な」方法はありますか? 書き込みよりも読み取りの方がはるかに多い場合、効率的に実装するにはどうすればよいですか? 変数を としてマークする必要がありますvolatile
か?
編集:「リーダー」スレッドはデータのバッチで定期的に機能し、新しい値の伝播は時間に敏感ではありません。テストする良い方法がない複雑なインターロックを実装する代わりに、ライター スレッドが書き込む別の一時変数を宣言するだけで済みます。次に、リーダーが 1 つのバッチで終了すると、一時値をアトミックに実際の変数に伝達できます。それはレースコンディションフリーでしょうか?