返回信息流今天看jcip,里面提到可重入问题时有下面一段代码:
public class Widget {
public synchronized void doSomething() {
}
}
public class LoggingWidget extends Widget {
public synchronized void doSomething() {
System.out.println(toString() + ": calling doSomething");
super.doSomething();
}
}
然后说由于java的synchronized是可重入的,因此该代码不会造成死锁。但是我觉得在LoggingWidget.doSomething调用时会获得LoggingWidget的锁,在super.doSomething()调用时会获得Widget的锁,即使不是可重入的,也应该不会造成死锁才对啊?
这是一条镜像帖。来源:北邮人论坛 / java / #41405同步于 2015/6/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
java的synchronizad问题
hyx2011
2015/6/6镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
求问 多线程相关的概念比较详细的书或文档 比如锁 原子 同步等等概念。
【 在 nuanyangyang 的大作中提到: 】
: 查查一个叫“reentrant lock”的概念。
【 在 mogumogu 的大作中提到: 】
: 求问 多线程相关的概念比较详细的书或文档 比如锁 原子 同步等等概念。
:
还是找Oracle的tutorial吧。
锁的是当前对象,虽然是父类和子类,但是对象应该是一个吧。
【 在 hyx2011 的大作中提到: 】
: 今天看jcip,里面提到可重入问题时有下面一段代码:
: [code=java]
: public class Widget {
: ...................
http://www.tuicool.com/articles/Fr6FBnY
【 在 hyx2011 的大作中提到: 】
今天看jcip,里面提到可重入问题时有下面一段代码:
...