哪些锁保存在重写的非静态同步方法中。 请提供基类和子类的监视器锁的获取和释放顺序,以便解释java中可重入的好处。如果可以借助 JVM 维护的拥有线程和获取计数来解释序列以实现重入,那就太好了。
public class Widget {
public synchronized void doSomething() {
}
}
public class LoggingWidget extends Widget {
public synchronized void doSomething() {
super.doSomething();
}
}
请注意,这个问题是专门为了解释隐式可重入锁而提出的,所以请不要将其标记为重复。
最佳答案
每个对象都有一个关联的监视器。当在对象上调用同步实例方法时,与该对象关联的监视器需要由调用线程持有。
对象的类是不相关的。
关于java - 同步重写方法: Intrinsic Locks acquiring order for parent and child classes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23869188/