synchronized锁升级

JDK1.6时synchronized锁有:

偏向锁:在一段时间只有一个线程使用锁,此时就可以使用偏向锁,第一次获取到锁需要CAS操作,之后要再次获取锁,只需要在获取锁时判断当前线程id是否为已经获取锁的线程id,不需要CAS操作,提高了性能。

轻量级锁:多个线程交替持有锁,但是没有发生竞争,此时就是轻量级锁,每次获取锁都是一个CAS操作,保证原子性。

重量级锁:当出现竞争,锁就升级为重量级锁,当线程没有获取到锁会进入阻塞状态,重量级锁涉及到用户态和内核态的切换以及线程上下文切换,所以性能比较低。

posted @   程序员_YHB  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示