アトミックを本当に使う必要があるのはいつですか? boolの代わりに?[重複] 質問する

アトミックを本当に使う必要があるのはいつですか? boolの代わりに?[重複] 質問する

atomic<bool>は本質的にアトミックなので冗長ではないでしょうかbool? 部分的に変更された bool 値を持つことはできないと思います。atomic<bool>の代わりにを実際に使用する必要があるのはいつですかbool?

ベストアンサー1

いいえC++ の型は、-something でない限り、「本質的にアトミック」ですstd::atomic*。これは、標準でそう定められているからです。

実際には、 を操作するために発行される実際のハードウェア命令は、std::atomic<bool>通常の の命令と同じである場合もそうでない場合もありますboolが、アトミックであることは、より広範な影響(コンパイラーの並べ替えの制限など)を伴う、より大きな概念です。さらに、一部の操作(否定など)は、アトミック操作でオーバーロードされ、非アトミック変数のネイティブな非アトミックな読み取り、変更、書き込みシーケンスとは明確に異なる命令をハードウェア上に作成します。

おすすめ記事