難解。

synchronized処理に渡されたインスタンスは、
そのブロックが抜けるまでキーとして保持される。

synchronized処理に渡されたインスタンスがすでにキーとして存在する場合、
そのスレッドはキーが開放されるまで待機する。

ゆえに、全く別の場所で実行されたsynchronizedでも、
渡されたインスタンスが同一ならば後発側が待機させられ、
同じ場所で実行されたsynchronizedでも、
渡されたインスタンスが違うならば並行して動作する、ということでしょうか。


馬鹿だから無理です、って言ったら明日からPowerd by 無職ですので。
多少は無理せねばならんのがつらいところです。