2 个回答
CAS 有个缺点就是会带来 ABA 的问题。
从 CAS 更新的时候,我们可以发现它只比对当前值和内存值是否相等,这会带来个问题,下面我举例说明下:
从 CAS 更新的时候,我们可以发现它只比对当前值和内存值是否相等,这会带来个问题,下面我举例说明下:
假设线程 A 读到当前值是 10,可能线程 B 把值修改为 100,然后线程 C 又把值修改为 10。
等到线程 A 拿到执行权时,因为当前值和内存值是一致的,线程A是可以修改的!
站在线程 A 的角度来说,这个值是从未被修改的 。
这是不合理的,因为我们从上帝的角度来看,这个变量已经被线程 B 和线程 C 修改过了。
发布于:1年前 (2024-01-03) IP属地:未知
我来回答
您需要 登录 后回答此问题!