スレッド A y = 1; synchronized (m) { x = 1; } スレッド B synchronized (m) { i = x; } j = y;
A がsynchronizedブロックの中"または前"にやったことは全て、
Bが同じロックによってガードされていsynchronizedブロックを実行するとき、
Bにとって可視です
→ xとyの変更はBで可視
スレッド A y = 1; synchronized (m) { x = 1; } スレッド B synchronized (m) { i = x; } j = y;
A がsynchronizedブロックの中"または前"にやったことは全て、
Bが同じロックによってガードされていsynchronizedブロックを実行するとき、
Bにとって可視です
→ xとyの変更はBで可視