并发编程实战的阅读(锁的重入)

当一个线程持有锁时,JVM会记录下的锁的持有者,并讲获取锁的的记录值为1,当线程再次获取这个锁就变为2.退出锁就会递减。

为什么要这种机制?

如例子程序调用super.dosomething(); 永远无法获得父类加的锁。造成死锁
public class Test_1 {
public synchronized void dosomething()
{

}
}
class LoggingWidget extends Test_1
{
@Override
public synchronized void dosomething() {
super.dosomething();
}
}

原文地址:https://www.cnblogs.com/yaohaitao/p/5612527.html