title: ReentrantReadWriteLock vs synchronized
body: <p>When should we use <em>ReentrantReadWriteLock</em> as compared to <em>synchronized</em> keyword in multithreaded environment in Java? </p>
  
  <p>What are the benefits of using <em>ReentrantReadWriteLock</em> over <em>synchronized</em> in Java?</p>
  
  <p>Can any one give an example as well (in Java)?</p>
  
  <p>Thanks!</p>