AbstractQueuedSynchronizer之AQS

  可参考:可重入锁和递归锁

1,定义

指的是同一线程外层函数获得锁后,再进入该线程的内层方法会自动获取锁(前提:锁对象是同一个对象)。

Java中的ReentranLock(显示锁)和Synchronized(隐式锁)都是可重入锁,可重入锁的一个优点是可在一定程度避免死锁

隐士锁:(即synchronized关键字使用的锁)默认是可重入锁(同步块、同步方法)

2,案例

  synchronize隐式锁

AbstractQueuedSynchronizer之AQS

AbstractQueuedSynchronizer之AQS

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("=====内层"); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgygjz.html