JVM--偏向锁

34 篇文章 0 订阅
6 篇文章 0 订阅

定义在对象的对象头信息里。所以它也最轻。

当线程获取对象的偏向锁时,对象头的Mark word中会记录当前偏向的线程,所以mark word里存在线程信息,偏向方式是没有竞争时取消当前线程的同步操作。但又不能因为偏向失去锁的意义,所以竞争时,重新偏向其他线程。所以偏向锁在竞争少时能提高性能,竞争多时偏向锁多线程间切换,起不到偏向的作用。

 

书本解释

偏向锁mark word格式

 

23位偏向锁线程|2位偏向锁时间戳|4位对象年龄|1(偏向锁固定位)|01(表示可偏向/未锁定)

 

核心思想

 

线程获取锁时没有线程间竞争,那么则取消获取锁的同步操作。即获取锁的线程后续操作不会走同步操作。

 

参数

-XX:+/-UseBiasedLocking 启动/禁用偏向锁,默认虚拟机启动4秒后启动偏向锁

-XX:BiasedLockingStartupDelay 虚拟机启动后,立刻启动偏向锁

 

偏向锁Mark Word记录了获取锁的线程,而且核心思想是同一线程多次访问,去除同步操作,所以偏向锁适用于竞争不激烈的场景,可以避免多余的同步操作。

当处于竞争激烈的场景下,偏向锁在多线程的切换,并不能一直处于偏向模式,达不到优化效果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值