是否有任何JVM通过自旋等待实现阻塞?
|
在《 Java Concurrency in Practice》中,作者写道:
当争用锁定时,丢失的线程必须阻塞。 JVM可以通过旋转等待(反复尝试获取锁直到成功)来实现阻塞,也可以通过操作系统挂起阻塞的线程来实现阻塞。哪种效率更高取决于上下文切换开销与锁定可用时间之间的关系。对于短暂的等待,最好使用自旋等待;对于长时间的等待,最好使用悬浮。一些JVM基于对过去等待时间的分析数据在两个自适应之间进行选择,但大多数JVM只是挂起线程等待锁定。
当我读到这篇文章时,我很惊讶。是否有任何已知的JVM由于分析结果而总是在自旋等待或有时自旋等待中实现阻塞?现在很难相信。
没有找到相关结果
已邀请:
2 个回复
艾食魄轻县
席酱