还是没彻底理解CAS
来源:7-1 什么是CAS
海天s
2020-12-19
我知道CAS是从硬件上实现原子性的,即CPU的一个指令就实现了“比较+替换”,但我还是不明白如果两个线程同时CAS,为什么能并发安全。
比如这个例子:当前内存值是56,cpu1执行cas(56,57),cpu2执行cas(56,58),假设两个线程同时执行,绝对的同一时刻执行,即两个cpu同时执行原子命令cas,他们都得到当前值是56,就都放行了。
这样理解的对吗?正常情况下只有一个线程能成功吧?我这种理解到底哪里有问题?一直很困扰,求老师解答,谢谢~
写回答
1回答
-
很好的问题,CPU会在更高层面来统筹多个core之间的协作,保证两个CPU不会同时执行CAS。
112020-12-21
相似问题