When a thread acquires a lock, it prevents other threads from acquiring the same lock until it has released the lock. A thread can acquire the same lock multiple times (locks in
Java are reentrant), for instance:
A thread can also acquire one lock, and then proceed to acquire another lock, like this: