java - Java 线程是否可以在已经持有锁的情况下获取锁?

标签 java multithreading concurrency

如果线程持有,当线程需要进入另一个由相同锁控制的临界区时会发生什么?

最佳答案

Intrinsic locks (synchronized) 在 Java 中是可重入的,因此 JVM 将识别当前线程已经持有此锁并继续执行。

还有explicit locks , 是可重入的。

如果一个锁是不可重入的,例如你可以不使用递归方法。

关于java - Java 线程是否可以在已经持有锁的情况下获取锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2704198/

相关文章:

c# - 如何对包含异步调用的方法进行单元测试?

java - 在kafka中,当使用事务生成消息时,消费者偏移量增加了一倍

java - Primefaces p :autcomplete issues with String field in POJO

java - 无法从Java中的JComboBox播放声音

c++ - 对于 CPU 无法原子操作的类型,std::atomic 有什么意义?

java - Java多线程并发问题

跟踪文件复制的 Java 程序

java - 如何知道哪个线程受 notify() 或 notifyAll() 影响 - Java

java - 等待线程中的特定条件变为真

python - 使用 python并发.futures 提交进程编号