volatile的原子性问题

volatile为什么不能保证原子性有大佬能解释下吗,看了很多网上的博客都说因为i++这种操作不是原子性的,可是就算他不是原子性的,其中一个线程更新主存中的值的时候,其他线程缓存的值不是会失效吗。还有人说是因为其他线程读取过了就不会读取了,这就更说不通了,如果读取过不会读取了,那可见性是干嘛的?就好比三个线程同时读取了一个值,其中一个线程修改了这个值写回内存,另外两个线程肯定会重新读取这个值啊,怎么可能读取过不会读取。把我整懵了
全部评论
因为其他线程缓存会失效,但是寄存器不会失效,如果其他线程已经读进寄存器了,就无法保证原子性
点赞 回复 分享
发布于 2020-07-22 18:18
假设多个线程进行a++操作,线程1进行了a+1,并传到了线程1的缓存中,同时线程2也进行完了a+1的操作,因为线程1的值改变了,将值写回内存,线程2重新去内存取a的值,但是线程2已经做了a+1的动作了,所以不会再重新做a+1的操作,这样就相当于a少加了一次。个人理解
点赞 回复 分享
发布于 2020-07-22 18:24

相关推荐

不愿透露姓名的神秘牛友
11-27 10:52
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
评论
点赞
2
分享
正在热议
# 25届秋招总结 #
440577次浏览 4493人参与
# 春招别灰心,我们一人来一句鼓励 #
41484次浏览 524人参与
# 阿里云管培生offer #
119864次浏览 2219人参与
# 地方国企笔面经互助 #
7928次浏览 18人参与
# 同bg的你秋招战况如何? #
75577次浏览 552人参与
# 虾皮求职进展汇总 #
114215次浏览 884人参与
# 北方华创开奖 #
107311次浏览 599人参与
# 实习,投递多份简历没人回复怎么办 #
2454001次浏览 34848人参与
# 实习必须要去大厂吗? #
55678次浏览 960人参与
# 提前批简历挂麻了怎么办 #
149825次浏览 1977人参与
# 投递实习岗位前的准备 #
1195707次浏览 18546人参与
# 你投递的公司有几家约面了? #
33180次浏览 188人参与
# 双非本科求职如何逆袭 #
661910次浏览 7394人参与
# 如果公司给你放一天假,你会怎么度过? #
4730次浏览 55人参与
# 机械人春招想让哪家公司来捞你? #
157604次浏览 2267人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11365次浏览 270人参与
# 发工资后,你做的第一件事是什么 #
12418次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35612次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20091次浏览 240人参与
# 我的上岸简历长这样 #
451924次浏览 8088人参与
# 实习想申请秋招offer,能不能argue薪资 #
39235次浏览 314人参与
# 非技术岗是怎么找实习的 #
155850次浏览 2120人参与
牛客网
牛客企业服务