关于cas的疑惑

来源:7-4 本章总结_

慕函数0594413

2020-10-27

悟空老师您好,关于cas是将比较和交换弄成一条原子指令。如果是多个线程并发执行cas指令,那么没抢到cas执行权的线程会陷入阻塞吗?还是一致尝试,整个过程不会发生上下文切换。

写回答

2回答

悟空

2020-10-27

没抢到cas执行权的线程会等待,然后轮到它执行的时候,CAS失败,因为前面已经被别的线程CAS修改过了。

0
3
慕函数0594413
回复
悟空
好的好的,谢谢老师
2020-11-23
共3条回复

海天s

2020-12-19

这个问题我也有疑惑,“多个线程并发执行cas指令”,假设有两个线程,两个cpu,在同一时刻线程1执行原子指令cas(56,57), 线程2执行原子指令cas(56,58),会都成功吗?像你说的会有没抢到cas执行权的线程?为什么会有抢不到执行权的?

0
2
海天s
回复
悟空
谢谢老师
2020-12-21
共2条回复

深度解密Java并发工具,精通JUC,成为并发多面手

JUC全方位讲解,构建并发工具类知识体系

1599 学习 · 573 问题

查看课程