【发布时间】:2012-04-24 07:14:23
【问题描述】:
在这些Java情况下会发生死锁
1-
synchronized(obj) {
obj.syncMethod(); // the method signature: public synchronized void syncMethod() {...}
}
2-
synchronized(obj) {
if (condition)
throw new Exception(); // deadlock because obj lock is not released?
// do other stuff
}
谢谢。
【问题讨论】:
-
我没有使用同步方法的经验,但是仅仅因为抛出异常而导致方法的执行异常终止就可能发生死锁似乎很愚蠢。而且,如果是这种情况,您可以在那里捕获任何异常,解锁对象并抛出一个新异常。
-
你为什么不测试你的代码并找出答案?
标签: java concurrency deadlock