model)もう少しくだけた言い方をすると、以下のようになります。コアだと思ってください。)あなたが書き込んだ値を私が読み込めたとき、私はあなたの書き込みが見えた。あなたが読み込んだ値に私がもう影響を与えられないとき、私はあなたの読み込みが見えた。(心配せずとも、すぐに慣れます)。ついて説明する準備が出来ました。弱いメモリ一貫性保証しかありません。読み込みも書き込みもお互いの順序が保証されません。いうことを思い出してください。読み込むまでループします。セットしてデータが有効であることを示します。これが動作することが保証されています。読み込みがプログラム順序で行われるのが見えます。読み書きが任意の順序で見えます。保持していることが有り得ます。保持している可能性もあります。明示的に順序付けを定義しない限り、どのような結果になるかは判りません。伝える方法がメモリバリアです。シングルプロセッサ環境では逐次一貫性があるので、メモリバリアは必要ありません。(バリア命令を実行することは出来ますが、意味はありません。向けにビルドを分けることもあります。読み込み/読み込み以前の例を思い出してください。書き込みが行われるようにしなければなりません。これは「書き込み/書き込み」の状況です。読み込みが行われるようにしなければなりません。これは「読み込み/読み込み」の状況です。以前述べたように、読み書きは任意の順序で見える可能性があります。キャッシュの議論を思い出してください。最低限のキャッシュコヒーレンシしかないものと仮定します。更新は見ることができません。他にも問題があります。最近読み込んだ別の何かと同じキャッシュラインにあったと仮定します。読み込むことになります。これは以下のようにすれば修正することが出来ます。書き込みが見えることが保証されます。何も読み込んでいないので、問題ありません。読み込み/読み込みバリアも、読み込みについて同様の保証が行われます。見えることも保証する必要があるからです。以降のどんな書き込みよりも前に現在の値が他のコアから見えることを保証します。以降の読み込みが以前の読み込みよりも後に見えることを保証します。実際に何をしているかはどうでもいいことです。読み込むことでしょう。メモリモデルはアーキテクチャによって異なります。書き込み/読み込み以前に示したデッカーのアルゴリズムの一部は、書き込み/読み込みバリアが必要な例です。読み込み/書き込みバリアが必要な例は、以下に示します。書き込みが見える可能性があります。書き込んでしまう可能性があります。この問題は、両方のスレッドに読み込み/書き込みバリアを入れると、解決します。ローカルキャッシュへの書き込みが見えることがあります。保持していないと仮定します。読み込みが開始され、そしてそれが行われている間も実行は続けられます。読み込みは終わっていません。ループを脱出してしまいます。