title: Condition give the effect of having multiple wait-sets per object?
body: <p>I am reading about Condition in <code>java.util.concurrent.locks.Condition</code> .</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.</p>
  </blockquote>
  
  <p>Can somebody explain me this?</p>
  
  <p>How this is a benefit over normal synchronization blocks or method?</p>