>>635
その例ではまったく意味ない。
複数スレッドで「一個」の Lock オブジェクトを使う場合に意味がある。

例えばこんな感じ。

final Lock lock = new Lock();
for (int i = 0; i < 10; i++) {
  new Thread() {
    public void run() {
      lock.foo();
    }
}.start();
}