java各种锁

1. synchronized和reentrantlock的区别,ReentrantLock的可重入的含义是什么

sync是悲观锁,认为并发写多读少,不给别人资源
lock是乐观锁,认为并发读多写少,给别人读

sync是非公平性锁,可能存在等待时间最长的线程却一直无法获取资源的情况
lock是公平锁,先到先得

lock是再入锁,就是说当线程试图获取锁时,发现锁已被人持有了,而持有的人正是他自己,那么就可以重新获取这个锁

2. 什么是锁的升级,降级

当JVM检测到不同的竞争状态时,会对锁进行升级和降级。
第一级,CAS 偏斜锁。几乎无竞争状态
第二级,revoke撤销偏斜锁,改为轻量级锁
第三级,使用重量级锁(如 sync)

3. 自旋锁是什么意思?

当线程尝试获取锁时,发现锁已经被占用,则循环检测锁是否可用,而不是进入挂起或睡眠状态,直到获取到锁,才退出循环。
自旋锁是不可重入锁

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值