ここから: https://stackoverflow.com/a/2485177/462608
共有データへのスレッドセーフなアクセスの場合
、読み取り/書き込みが実際に行われること(コンパイラーが代わりにレジスターに値を格納するだけでなく、メインメモリーの更新をかなり後になるまで延期すること)
が行われないという保証が必要です。一部のデータを読み取る準備ができているかどうかを示すフラグとして揮発性変数を使用するとします。私たちのコードでは、データを準備した後にフラグを設定するだけなので、すべて問題なく表示されます。しかし、フラグが最初に設定されるように命令が並べ替えられた場合はどうなるでしょうか。
- コンパイラが値をレジスタに格納し、メイン メモリの更新を延期するのはどのような場合ですか? 【上記引用に関して】
- 上記の引用が話している「再注文」とは何ですか? それはどのような場合に起こりますか?