Java 锁1 悲观锁 乐观锁 公平锁 非公平锁 CAS 自旋锁 上线文切换 Synchronized lock volatile concurrent reentrantLock AQS

在这里插入图片描述

1、悲观锁 乐观锁

在这里插入图片描述
在这里插入图片描述

等待:相当于挂起,也就是阻塞 wait() cpu让出时间片给其他线程使用(上下文切换)
唤起:notify()

在这里插入图片描述

2、CAS算法

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

弊端:多次自旋,会占用cpu资源

在这里插入图片描述

场景1:多次自旋
在这里插入图片描述
场景2:ABA问题

在这里插入图片描述

3、自旋锁

在这里插入图片描述
在这里插入图片描述

4、上线文切换

线程上下文切换:可以理解为:cpu和内存之间的一次io,消耗系统资源

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5、Synchronized

CAS不涉及到上下文切换。(设计到多线程时,如果用synchronized锁时,要关闭偏向锁)
在这里插入图片描述

在这里插入图片描述

Synchronized:本质是一个悲观锁

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Synchronized和lock锁

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

concurrent

在这里插入图片描述

并发包 java.util.concurrent

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

AQS

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值