ReentrantLock in Java is added on java.util.concurrent package in Java 1.5 along with other concurrent utilities 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, see How ConcurrentHashMap works in Javafor more details. Two key feature of ReentrantLock, which provides more control on lock acquisition is trying to get a lock with ability to 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 controlled locking in Java.
In this Java concurrency tutorial we will learn :
- What is ReentrantLock in Java ?
- Difference between ReentrantLock and synchronized keyword in Java?
- Benefits of using Reentrant lock in Java?
- Drawbacks of using Reentrant lock in concurrent program?
- Code Example of ReentrantLock in Java?