嵌套同步关键字
我在 Java 中有这段代码:
I have this code in Java:
public void doSomeThing() {
synchronized (this) {
doSomeThingElse();
}
}
public void doSomeThingElse() {
synchronized (this) {
// do something else
}
}
这个代码可以阻塞吗?我的意思是,这段代码可以一直等待吗?
Can this code block? I mean, Can this code wait for ever?
推荐答案
作为 java 文档描述 可重入锁定:
一个线程可以获取一个锁已经拥有
a thread can acquire a lock that it already owns
第二个同步块使用相同的锁,因此将始终可用,因为该锁已在外部方法中获取.
The second synchronized block is using the same lock and thus will always be useable as the lock has already been aquired in the outer method.
不,不会出现死锁.
相关文章