x64でのメモリの順序付けに関する Intel のドキュメントを読みました: http://www.multicoreinfo.com/research/papers/2008/damp08-intel64.pdf 。注文。しかし、障壁によって引き起こされる可視性については何もありません。バリアが原因で、他のプロセッサが変数の更新をすぐに確認できるようになるのでしょうか?それとも、更新が指定された順序でのみ、指定された時間ではなく他のプロセッサに伝播されるのでしょうか?
例えば
スレッド 1:
flag = true;
MemoryBarrier();
スレッド 2:
MemoryBarrier();
tmp = flag;
スレッド 1 がスレッド 2 の前にそのコードを実行する場合、スレッド 2 は常に flag=true になりますか?