title: Condition vs wait notify mechanism
body: <p>What is the advantage of using Condition interface/implementations over the conventional wait notify mechanism? Here I quote the comments written by Doug Lea:</p>
  
  <blockquote>
    <p>Condition factors out the Object monitor methods (wait, notify and notifyAll) into distinct objects to give the effect of having multiple wait-sets per object, by combining them with the use of arbitrary Lock implementations. Where a Lock replaces the use of synchronized methods and statements, a Condition replaces the use of the Object monitor methods. </p>
  </blockquote>
  
  <p>I see this is a more Object Oriented way of implementing wait/notify mechanism. But is there a sound advantage over the former? </p>