CAS会有什么缺点吗?

提问者:帅平 问题分类:面试刷题
CAS会有什么缺点吗?
1 个回答
我怕我伸手不及松手为空
我怕我伸手不及松手为空
CAS有个缺点就是会带来ABA的问题,从CAS更新的时候,我们可以发现它只比对当前值和内存值是否相等,这会带来个问题,下面我举例说明下:
假设线程A读到当前值是10,可能线程B把值修改为100,然后线程C又把值修改为10。
等到线程A拿到执行权时,因为当前值和内存值是一致的,线程A是可以修改的!
站在线程A的角度来说,这个值是从未被修改的。这是不合理的,因为我们从上帝的角度来看,这个变量已经被线程B和线程C修改过了。
这就是所谓的ABA问题

发布于:1年前 (2023-03-16) IP属地:四川省
我来回答