CAS
比较并替换,在synchronized底层实现用的非常多,可以保证多线程环境下对一个变量修改的原子性。
原理
包含3个值,当前内存值(V)、预期原来的值(E)、期待更新的值(N)
yes
no
V==E?
更新变量V并设置值为N
返回true
不更新变量V
返回false
code
比较并替换,在synchronized底层实现用的非常多,可以保证多线程环境下对一个变量修改的原子性。
包含3个值,当前内存值(V)、预期原来的值(E)、期待更新的值(N)
yes
no
V==E?
更新变量V并设置值为N
返回true
不更新变量V
返回false
下一篇:strtus2核心工作流程
cas客户端流程(源码解析)
文章目录CASCAS算法:CAS(V, E, N)。基于CAS的线程安全AtomicIntegerCAS缺点1、CPU开销大2、只能保证一个共享变量的原子操作3、
如何彻底理解CAS算法原理?
参考文章:[CAS(Compare and Swap)算法介绍、缺陷和解决思路](
深入理解CAS与原子引用一、深入理解CAS什么是CASublic class CASDemo
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M