首页 > 编程知识 正文

cas系统是什么意思,cas和锁的区别

时间:2023-05-04 13:47:33 阅读:129237 作者:3146

比较交换(cas ),也就是比较交换,也是我们平时所说的实现自旋锁和乐观锁的中心操作。

其实现很简单,用一个期望值和内存值进行比较,如果两个值相等,用期望值替换内存值并返回true。 否则,返回false。

保证原子操作任何技术的出现都是为了解决特定问题,CAS要解决的问题是保证原子操作。 原子操作是什么? 原子是不可最小分割的,原子操作是指不可最小分割的操作。 也就是说,操作开始后,在操作完成之前不能中断。 在多线程环境中,原子操作是确保线程安全的重要手段。 例如,假设两个线程正在运行,并希望修改某个值。 请考虑一下自增强操作。 对整数I进行自递增操作需要三个基本步骤。

1、读取I的当前值

2、I值加1的操作

3、将I的值写回内存;

假设两个进程都读取了I的当前值。 设置为0。 此时,a线程在I上加1,b线程也加1。 最后I的不是2而是1。 这是因为自增操作不是原子操作,而是分开的这三个步骤受到干扰。 10个线程对每个线程执行10000次I操作,如下例所示。 期望值为100,000,但很遗憾,结果总是小于100,000。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。