スレッド 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で可視