あなたが引用している文章は間違っていると思います。Java メモリ モデルの全体的な考え方は、最新のソフトウェアとハードウェアによる複雑な最適化に対処することです。これにより、プログラマは、他のスレッドのそれぞれの読み取りによってどの書き込みが表示されるかを判断できます。
Java のプログラムが適切に同期されていない限り、1 つのスレッドによる変更がすぐに他のスレッドに表示されることを保証することはできません。おそらく、テキストは非常に具体的な (そして弱い) メモリ モデルを参照しています。
volatile 変数の使用は、スレッドを同期する 1 つの方法にすぎず、すべてのシナリオに適しているわけではありません。
- 編集 -
私は今、混乱を理解していると思います...次のことを前提として、David Schwartzに同意します:
1)「プロセスリソースを変更する」とは、高水準のコンピューター言語で書かれた書き込み命令の実行だけでなく、リソースの実際の変更を意味します。
2) 「兄弟スレッドにすぐに見える」とは、他のスレッドがそれを見ることができることを意味します。プログラム内のスレッドが必ずしもそれを見るという意味ではありません。リソースへの実際のアクセスをバイパスする最適化を無効にするために、同期ツールを使用する必要がある場合があります。