可参考:可重入锁和递归锁
1,定义指的是同一线程外层函数获得锁后,再进入该线程的内层方法会自动获取锁(前提:锁对象是同一个对象)。
Java中的ReentranLock(显示锁)和Synchronized(隐式锁)都是可重入锁,可重入锁的一个优点是可在一定程度避免死锁
隐士锁:(即synchronized关键字使用的锁)默认是可重入锁(同步块、同步方法)
2,案例synchronize隐式锁
public class Demo01_ReentrantLockSynchronizedMethod { public static void main(String[] args) { new Demo01_ReentrantLockSynchronizedMethod().m1(); } private synchronized void m1() { System.out.println("=====外层"); m2(); } private synchronized void m2() { System.out.println("=====中层"); m3(); } private synchronized void m3() { System.out.println("=====内层"); } }