"A thread can acquire more than one lock. For example, a thread can enter a synchronized method, thus acquiring a lock, and then immediately invoke a synchronized method on a different object, thus acquiring that lock as well."
Can you please give an example this to explain the above statement.
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: