本文介绍了嵌套同步关键字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在 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 文档描述 可重入锁定:
一个线程可以获取一个锁已经拥有
第二个同步块使用相同的锁,因此将始终可用,因为该锁已在外部方法中获取.
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.
不,不会出现死锁.
这篇关于嵌套同步关键字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!