単一変数の前に起こった関係を理解していると思います。揮発性フィールドを書き込むと、このフィールドの後続のすべての読み取りにこの新しい値が含まれます。クロスを書き込むvolatileと、メモリバリアを越えて、新しい値がメインメモリにフラッシュされます。
Thread.start()他のすべての場合、たとえば、synchronizedまたはの新しいロックで何が起こるかについては、まだはっきりしていませんjava.util.concurrent。それらがメモリバリアも越えるとはどういう意味ですか?どのデータがローカルキャッシュからメインメモリにフラッシュされますか?言い換えれば、交差点の範囲は何ですか?
すべてが常にフラッシュされますか?さて、に戻って、それは単一のフィールドvolatile以上のものをフラッシュしますか?volatile