当前位置: 代码迷 >> J2SE >> 关于java内置锁的小疑点,请
  详细解决方案

关于java内置锁的小疑点,请

热度:2711   发布时间:2013-02-25 00:00:00.0
关于java内置锁的小问题,请高手指点
public class Widget {
  public synchronized void doSomething() {
  ...
  }
}

public class LoggingWidget extends Widget {
  public synchronized void doSomething() {
  System.out.println(toString() + ": calling doSomething");
  super.doSomething();
  }
}

今天在看某教材时看到如上代码,说可能会死锁。小弟愚钝,看不出为什么,请高手点拨,多谢!




------解决方案--------------------------------------------------------
我之前说的不太准确,注意现在子类的do方法中是调用了父类的do方法的,假设也在父类的do方法中去new子类的对象调用子类的do方法,结合我上面的举例会死锁吗?
------解决方案--------------------------------------------------------
例子就是一个synchronized 方法调用另一个synchronized 方法,因为是同一个对象,两个方法调用是同一个线程进行,再加上java的锁是可充入的,所以不会死锁。

  相关解决方案