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.
不,不会出现死锁.
这篇关于嵌套同步关键字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:嵌套同步关键字
基础教程推荐
- 如何强制对超级方法进行多态调用? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01