synchronized的锁策略及优化过程

来了解synchronized的锁策略前,需要先了解有什么类型的锁。

锁类型


锁之间的联系


synchronized的锁策略

自适应的意思是synchronized会根据锁冲突的情况来选择是变成轻量级锁还是重量级锁,乐观锁还是悲观锁,自旋锁还是挂起等待锁。

  • synchronized是乐观锁或悲观锁,根据自适应决定
  • synchronized是轻量级锁部分由自旋锁完成,重量级锁部分由挂起等待锁完成
  • synchronized是自旋锁或挂起等待锁,根据自适应决定
  • synchronized是非公平锁
  • synchronized是互斥锁
  • synchronized是可重入锁

synchronized优化过程(自适应过程)

synchronized的优化过程是根据内部判定锁竞争的激烈程度来决定的

  1. 无锁
  2. 偏向锁,真正意义上不算拥有锁,只是先标记,在没有其他线程来竞争前并没有真正上锁,但若真正到了有其他线程来竞争的时候,就会立马加上锁
  3. 轻量级锁,synchronized内部会判断锁竞争是否激烈,当锁竞争还不大激烈的时候就会上轻量级锁
  4. 重量级锁,synchronized判断竞争激烈时会变为重量级锁

其他的锁优化过程

StringBuffer类型内部是有synchronized的,但当判断到StringBuffer都是在同一线程中的时候,就不会加锁了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值