Java 如何在幕后管理同步?通过不挂起锁持有者线程,或者让它持有锁,即使在挂起时也是如此?
How does Java manage synchronization under the hood? By not suspending the lock holder thread, or by letting it to hold the lock, even when suspended?
我正在 java 学习并发,但我找不到关于同步过程如何在幕后工作的明确解释,对于持有锁的线程,对于持有锁的线程敬请期待
我们只考虑运行ning在临界区并且有锁的线程,下面哪一个是正确的?
A) JVM让线程一路向下完成同步部分而不用interruption/suspension.
B) 该线程可能仍按系统调度挂起,但由于它在持有锁时被挂起,其他调度到 运行 现在的线程无法执行同步 [with the same monitor ] 部分代码?
在此先感谢您的帮助。
调度程序可以随时挂起任何线程。
现在安排到 运行 的其他线程不允许执行代码的同步 [使用同一监视器] 部分,即使当前有多个线程正在执行也是如此。不依赖持有锁的线程当前是否正在执行。
我正在 java 学习并发,但我找不到关于同步过程如何在幕后工作的明确解释,对于持有锁的线程,对于持有锁的线程敬请期待
我们只考虑运行ning在临界区并且有锁的线程,下面哪一个是正确的?
A) JVM让线程一路向下完成同步部分而不用interruption/suspension.
B) 该线程可能仍按系统调度挂起,但由于它在持有锁时被挂起,其他调度到 运行 现在的线程无法执行同步 [with the same monitor ] 部分代码?
在此先感谢您的帮助。
调度程序可以随时挂起任何线程。
现在安排到 运行 的其他线程不允许执行代码的同步 [使用同一监视器] 部分,即使当前有多个线程正在执行也是如此。不依赖持有锁的线程当前是否正在执行。