September 2019
Intermediate to advanced
816 pages
18h 47m
English
The Lock interface contains a set of locking operations that can be explicitly used to fine-tune the locking process (it provides more control than intrinsic locking). Among them, we have polled, unconditional, timed, and interruptible lock acquisition. Basically, Lock exposes the futures of the synchronized keyword with additional capabilities. The Lock interface is shown in the following code:
public interface Lock { void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); boolean tryLock(long timeout, TimeUnit unit) throws InterruptedException; void unlock(); Condition newCondition();}
One of the implementations of Lock is ReentrantLock. A reentrant lock acts as follows: when the thread enters ...