What does the ReentrantLock class provide that a synchronized block does not?
The ability to restrict a thread from acquiring the lock
The ability to handle deadlock situations automatically
The ability to acquire a lock multiple times by the same thread
The ability to synchronize only one block of code at a time
This question is part of this quiz :
Java Concurrency Locks and Reentrant Locks