actomic包通过cas实现了原子性,那怎么保证的有序性和可见性

来源:3-1 线程安全性-原子性-atomic-1

慕粉3389691

2019-07-03

写回答

1回答

Jimin

2019-07-03

你好,atomic里的cas,底层实现时已经是到cpu指令级别了,通过cpu一条指令完成“先判断相等再更新”的操作,这里先判断再更新就保证了可见性,做到不会错误覆盖;同时,如果判断不相等会不执行,然后借助上层封装while循环取出最新的值,重新处理计算逻辑,继续执行cas操作,保证最终判断相等才执行,这样就保证了原子性。cas的机制保证了可以线程安全的更新。

0
2
weixin_慕数据7074580
老师,您好,我个人觉得可见性和有序性,并不在cas中体现,更为明显的是在atomic.get()方法获取的value值(被volatile修饰的)体现
2020-11-04
共2条回复

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程