実際のJava並行性では、次のように述べています。
揮発性フィールドへの書き込みが発生します-同じフィールドの後続のすべての読み取りの前に
つまり、2つのスレッドが同時に読み取りと揮発性フィールドへの書き込みを試みた場合、JVMは書き込み操作が読み取り操作に先行することを保証しますか、それとも競合状態が発生しますか?
実際のJava並行性では、次のように述べています。
揮発性フィールドへの書き込みが発生します-同じフィールドの後続のすべての読み取りの前に
つまり、2つのスレッドが同時に読み取りと揮発性フィールドへの書き込みを試みた場合、JVMは書き込み操作が読み取り操作に先行することを保証しますか、それとも競合状態が発生しますか?
競合状態が発生します。結果は、誰が最初にそこに着くかによって異なります。
volatile フィールドへの書き込みがそのフィールドの読み取りの前に発生した場合、volatile は読み取りが最新の値であることを保証します。
volatile は原子性を保証するものではなく、可視性を保証することに注意してください。