>>304
>正直、Javaのマルチスレッドはよく知らないんだけど、

勉強しなよ。

>synchronized ってクリティカルセクションみたいな物じゃないの?

その通り。

>だとしたら何故意味がないの?

>>300 にあるように、
「getX(), setX()を作ってそれぞれsynchronized指定しても、」

意味がない、と言っている。

「Javaの格言」には、

p.x++;
p.y++;

みたいなのをマルチスレッドで実行するとおかしくなるからフィー
ルドをpublicにしちゃいかんのだ、と書いてある。

じゃあ、privateにして、synchronizedなアクセサgetX(), setX()
を付けたとして、

x = p.getX();
p.setX(x+1);

というコードを、スレッドAとスレッドBが以下のように実行したと
すると、

x = p.getX(); // スレッドA
x = p.getX(); // スレッドB
p.setX(x+1); // スレッドA
p.setX(x+1); // スレッドB

ふたつのスレッドがxをインクリメントしようとしたにも関わらず、
xは1しか増えないことになる。

getとsetが分かれてたり、xとyで独立してたりするアクセサは、
少なくともクリティカルセクションを守るためには役に立たんと
いうことだ。