ReentrantLock in Java is added on java.util.concurrent package in Java 1.5
along with other concurrentutilities like CountDownLatch, Executors and CyclicBarrier.
ReentrantLock is one of the most useful addition in Java concurrency package and
several of concurrent collection classes from java.util.concurrent package is written using ReentrantLock,
including ConcurrentHashMap.
Two key feature of ReentrantLock,
which provides more control on lock acquisition is trying to get a lock with abilityto interrupt,
and a timeout on waiting for lock,
these are key for writing responsive and scalable systems in Java.
In short, ReentrantLock extends functionality of synchronized keyword in Java and
open path for more controlledlocking in Java.
Read more: http://javarevisited.blogspot.com/2013/03/reentrantlock-example-in-java-synchronized-difference-vs-lock.html#ixzz2iAm7QCv3
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/ReentrantLock.html