多线程笔记:乐观锁,悲观锁,自旋锁,重入锁

乐观锁:也叫无锁变成

cas 是乐观锁的基础,比较:内存中的值A 在修改之前先判断 与A是否相等 如果相等就修改不等就重试

悲观锁:其实就是每次有线程来读数据,就上锁,只有等锁释放其他线程才能修改

自旋锁:自旋锁其实就是死循环不断去抢锁

synchronized锁升级:偏向锁,轻量锁,重量锁

偏向锁就是偏向第一个得到锁的线程,当线程竞争不激励的时候只有一个线程 synchroized就是偏向锁,如果线程竞争激励了两个线程竞争锁synchroized就会升级成轻量锁或叫自旋锁,因为线程竞争激烈所有在挣抢锁的时候抢不到的线程就是进入自旋一直争抢直到抢到位置所以比较消耗资源。如果竞争更加激烈了有很多线程都在自旋就会升级成重量锁,争抢不到锁的线程直接挂起。

重入锁:就是同一个线程可以再次获取同一个锁,Lock和synchroized 都是可重入锁。

公平锁和非公平锁:公平锁就是获取锁根据先到先得原则,非公平锁就是随机。ReentrantLock通过构造法设置是公平还非公平默认是非公平。synchroized是非公平锁

中断锁:线程a可以发出指令中断b线程,b线程也可以给自己发送中断,但是b要不要中断是自己判断的,synchroized是不可中断的 lock是可中断

读锁和写锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值