Reentrant Monitor in Java
According to Sun Microsystems, Java monitors are reentrant means java thread can reuse the same monitor for different synchronized methods if method is called from the method.
Advantage of Reentrant Monitor
It eliminates the possibility of single thread deadlocking
Let's understand the java reentrant monitor by the example given below:
In this class, m and n are the synchronized methods. The m() method internally calls the n() method.
Now let's call the m() method on a thread. In the class given below, we are creating thread using annonymous class.Test it Now
Output: this is n() method this is m() method