java锁笔记

1、偏向锁(一般情况会关闭)
CAS比较
compare and swap(value, expect, update)
compareAndSet

2、轻量级锁
自旋获取锁,自旋会占用CPU资源,如果一定次数之后还未获取轻量级锁,锁膨胀成重量级锁。
自旋次数:
    1、设置自旋次数 preBlockSpin
    2、自适应自旋

3、重量级锁
升级到重量级锁后,没有获得锁的线程会被阻塞。(block状态)
ObjectMonitor
monitorenter--------->monitor------->monitorexit(随机唤醒一个阻塞的线程)


4、wait、notify、notifyall
wait:会实现线程的阻塞,会释放当前的同步锁
notify/notifyall:将等待队列中的线程移到同步阻塞队列中

5、wait和sleep的区别
wait会释放锁和CPU资源
sleep不会释放锁资源,会释放CPU资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值