java id 锁_Java的四种锁

d99365ed5dacbde44f31997c94d5fea7.png

偏向锁:是当没有多个线程竞争锁资源时,会开启偏向锁为拥有锁的对象标识上第一个拿到这个锁的线程的ID,当这个线程撤销锁后,

中途没有其他线程来获取这个对象的锁资源,下次再来时就会直接执行该锁资源的内容而不需要再获取,也不会有同步的性能消耗。

轻量级锁:当有两个及以上线程同时竞争锁资源时,会将该对象的偏向锁膨胀为轻量级锁(升级锁会找全局安全点:所有线程停止字节码执行),让每个线程进行CAS自旋来获取锁资源。

重量级锁:线程不断CAS自旋来尝试获取锁资源,一定次数后还没有获取到锁资源就会将锁膨胀为重量级锁,即synchronized(

1)Wait Set:哪些调用 wait 方法被阻塞的线程被放置在这里;

2) Contention List:竞争队列,所有请求锁的线程首先被放在这个竞争队列中;

3) Entry List:Contention List 中那些有资格成为候选资源的线程被移动到 Entry List 中;

4) OnDeck:任意时刻,最多只有一个线程正在竞争锁资源,该线程被成为 OnDeck;

5) Owner:当前已经获取到所资源的线程被称为 Owner;

6) !Owner:当前释放锁的线程)

https://blog.csdn.net/zmh458/article/details/93053867

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值