Nested synchronized keyword(嵌套同步关键字)
问题描述
我在 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.
不,不会出现死锁.
这篇关于嵌套同步关键字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:嵌套同步关键字


基础教程推荐
- 如何在 JFrame 中覆盖 windowsClosing 事件 2022-01-01
- 如何在 Spring @Value 注解中正确指定默认值? 2022-01-01
- 验证是否调用了所有 getter 方法 2022-01-01
- 多个组件的复杂布局 2022-01-01
- 从 python 访问 JVM 2022-01-01
- 不推荐使用 Api 注释的描述 2022-01-01
- Java Swing计时器未清除 2022-01-01
- 在 Java 中创建日期的正确方法是什么? 2022-01-01
- Java 实例变量在两个语句中声明和初始化 2022-01-01
- 大摇大摆的枚举 2022-01-01