锁升级

锁升级

线程的阻塞和唤醒需要CPU从用户态转为核心态,频繁的阻塞和唤醒对CPU来说是一件负担很重的工作,Java SE1.6为了减少获得锁和释放锁所带来的性能消耗,引入了“偏向锁”和“轻量级锁”

无锁:(1)不存在竞争,不需要加锁;(2)存在竞争,通过诸如CAS这种方式,可以进行无锁编程。

偏向锁:获取到锁资源的线程,会优先让它再去获取到这个锁。针对不存在或很少存在资源竞争的情况下使用。

若没有获取到这个锁,就升级成一个轻量级锁,是一个CAS的锁,是一个乐观锁,CAS是一个比较与交换的过程,如果没有设置成功,它进行自旋,自旋到一定的次数之后才会升级成一个Synchronized的重量级锁。

链接: link.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值