复制
收藏
提问
简洁
为什么Java里面轻量级锁比重量级锁效率要高,原因在哪
2个月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
轻量级锁与重量级锁效率对比
- 锁的实现机制:轻量级锁主要依赖于CPU的CAS指令,而重量级锁依赖于操作系统的Mutex Lock。14
- 线程状态转换:轻量级锁不需要线程状态的转换,而重量级锁需要线程从用户态切换到内核态,增加了上下文切换的开销。4
- 锁的升级过程:轻量级锁在竞争激烈时会升级为重量级锁,但升级是单向的,一旦升级,不会降级。36
- 锁的持有方式:轻量级锁通过在线程栈中创建Lock Record来持有锁,而重量级锁则通过操作系统的互斥量来持有。25
轻量级锁之所以比重量级锁效率高,主要原因在于其实现机制和线程状态转换的开销较小。轻量级锁利用CAS指令在用户态完成锁的获取和释放,避免了线程状态的频繁切换和上下文切换的开销。同时,轻量级锁在锁竞争激烈时会升级为重量级锁,但这种升级是单向的,一旦升级,不会降级,确保了锁的安全性。1346
你觉得结果怎么样?