>>358
p.setX(100);  // thread 1
p.setY(100);  // thread 1

p.setX(200);  // thread 2
p.setY(200);  // thread 2

setX(), setY() が synchronized でも、タイミングが悪いと (100,100), (200,200) 以外
の中途半端な状態が発生する。synchronized で保護するのなら、そもそも setX(),
setY() というメソッドがダメじゃん。