第十三章: 明示的なロック

普通のlockには制限があるので、その制限から逃れたい場合にはReentrantLockを使うと良いですよ、って内容。
finally句でのunlockが必要で、忘れがちなので通常はlockやsynchronizedを使う方が良い。但し、ポーリングやインタラプト、時間制限などを用いたい場合はReentrantLockを使うと良い。
Javadocから引用。

class X {
   private final ReentrantLock lock = new ReentrantLock();
   // ...

   public void m() { 
     lock.lock();  // block until condition holds
     try {
       // ... method body
     } finally {
       lock.unlock()
     }
   }
}

これだけ見るとやっぱり普通のlockで十分じゃないか、と思ってしまうが、色々な付加機能がある。