- Compare And Swap 比较并交换 (读取 > 修改 > CAS 拿之前读取值和现存值一致时执行交换)
- java实现类 Unsafe ,解释为 Compare And Set
- 原子操作 cpu底层支持
- Compare不通过时,自旋 重新执行 读取 > ... (while true 实现)
- ABA 问题 (读取为0 交换时也为0 但是在 读取 -> 交换的过程中 其他线程修改为 N 再 修改为 0 ) 类似乐观锁 读取记录标识 修改更改标识 jdk有默认实现
- cas 对应汇编代码 lock cmpxchg (首先会判断是否是多个cpu 多个cpu会加锁)
CAS (Compare And Swap or Compare And Set)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
 平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 锁(lock)的代价 锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文...
- 锁的代价 锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁在锁的时候需要操作系统进行一次上下文切换,加...
- 本文导读: 前言 如何保障线程安全 CAS原理剖析 CPU如何保证原子操作 解密CAS底层指令 小结 朋友,文章优...