首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
追求谁谁谁
2017-04-23 16:21
北京邮电大学 Java
关注
已关注
取消关注
java volatile询问
如果两个线程同时写volatile变量会出现什么问题?一个面试官问我的,求大神解答
#Java工程师#
提示
全部评论
推荐
最新
楼层
sillyeye
西南石油大学 Java
volatile能保证原子性,保证的是对64位long double简单赋值操作和读操作的原子性。但是复杂操作例如自增不能保证。但是你不能说没有保证自增volatile就不具有原子性,因为自增也是由3个原子性操作相加的符合操作。类比的你可以去看collections类同步synchronizedMap过后的map,他的put get remove一样是原子性的,但是如果你调用两个原子性操作就会出错。比如containsKey之后进行remove,并发时会出错的。
点赞
回复
分享
发布于 2017-04-23 19:02
mafee
中国传媒大学 Java
内存可见性和禁止指令重排序
点赞
回复
分享
发布于 2017-04-24 07:38
拖仔
东北大学 C++
至少在cpp里,不能保证线程安全…只是禁止了编译器的优化工作…
点赞
回复
分享
发布于 2017-04-23 23:55
GoOrNotGo!
中山大学 Java
对于基本变量的赋值和读取能保证原子性,其他不行。既然问的是使用了volatile,那我们的前提就是使用正确的情况下,根据happen-before原则,是不会有问题的,不可能是同时
点赞
回复
分享
发布于 2017-04-23 23:28
风的方向zlw
西安电子科技大学 Java
个人看法:如果写操作是i++这类的操作是会出现并发问题的,因为自增操作会分解成三个操作完成,这个大家都知道;如果写操作是i = 1这类赋值操作就不会有问题,因为赋值操作在jvm层面也是原子操作,加上volatie实现的可见性,就可以保证多个线程对这个变量的修改一定会有个先后顺序,最后这个变量的值就是最后执行的线程修改的值。
点赞
回复
分享
发布于 2017-04-23 21:50
layman
汕头市业余大学
楼主可以看看一位大神海子的一篇博客 volitale讲的很详细
点赞
回复
分享
发布于 2017-04-23 20:46
就只面了腾讯一家公司
北京师范大学 Java
可能读到被修改之前的值。因为读到缓存的数据了。
点赞
回复
分享
发布于 2017-04-23 18:37
牛客2692795号
厦门大学
volatile 不能保证原子性!!!绝对不能。认为能的是对java理解很大的常见误区。 volatile 保证的是内存可见性。也可用来防止指令重排序(就是上面有人提到的内存屏障,也是happens-before的一条原则)
点赞
回复
分享
发布于 2017-04-23 18:23
牛客2329558号
南京大学 Java
volitile能保证读和写的原子性
点赞
回复
分享
发布于 2017-04-23 17:14
李香兰
北京理工大学
不可能同时写,当某个线程a往主存写的时候,会锁住cpu缓存行,导致另一个线程b的相同变量无法同时写入与读取,当a写完时,由happen-before规则,b线程会重新读取主存最新的值,也就是说,volatile是轻量级的synchronized,不会导致线程切换。
点赞
回复
分享
发布于 2017-04-23 16:38
小度小度
南京大学 Java
volatile不能保证线程安全
点赞
回复
分享
发布于 2017-04-23 16:27
广东周润发
阿里巴巴_智能信息_Android
内存屏障
点赞
回复
分享
发布于 2017-04-23 16:25
暂无评论,快来抢首评~
相关推荐
01-23 16:56
门头沟学院 产品经理
27双非寒假实习投递总结
👋个人背景:27破双非,计算机大类专业,已有两段实习,一段独角兽产品,一段电商公司产研项目管理☎️意向和oc:蔚来数字化产品、爱奇艺电商产品、360搜推广告产品、去哪儿研发项目管理、莉莉丝中台项目管理👨💻面试:蔚来三轮,爱奇艺两轮,360两轮,去哪儿两轮,莉莉丝两轮,字节二面横向挂,飞书深诺拒二面📑简历:投递n家,约面仅上述公司,只能尽力争取有面试必oc 由于主包学历不好,实习经历也没那么出色,所以约面比较少,只能争取只要给主包一次面试机会,主包就得拿下。双非走产品困难,只能靠实习堆积,目前打算争取有一段暑期转正走保底,暑期前再刷一段。虽然说面试机会不多,但是一定要争取展示自己,让每...
产品面经
点赞
评论
收藏
分享
01-22 13:12
已编辑
美团_测试开发
第一次被同事气笑了
原本说好的一起合作,结果在第二天就要产出结果的时候发现对方负责的部分一点都没做,然后你是这个项目的主要负责人,出了问题你背锅,你会怎么做?事情缘由因为我是做测试的平时需要测试一些需求,对于一些大的需求可能需要测试一两周,但是互联网公司需要的是快速交付,很难说服产品你测试需要花这么久。这里可以简单给大家介绍一下,互联网之所以加班内卷严重很重要的一个因素就是需要快速的迭代产品,快速的抢占市场,积累用户往往是比你慢慢研发打磨细节要更好。比如A公司花了半年做出来一个产品,然后上线虽然接收到一些差评但是抢占了大量的市场后续慢慢优化这些差评,B公司花了一两年做和A公司同样的产品,虽然有些功能比A更好但是人...
烤点老白薯:
同事做的对 主要负责人是你凭啥让我干 想给我派活儿 让领导转达
你最近因为什么迷茫?
点赞
评论
收藏
分享
01-04 23:13
华南农业大学 Java
27届能过简历关吗
不知道项目有没有烂大街,和两个版本怎么选,求指点
点赞
评论
收藏
分享
2025-12-15 11:27
门头沟学院 Java
这就是BOSS市场的现状吗????
??????如何评价
哇哇的菜鸡oc:
所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞
评论
收藏
分享
01-20 19:00
中国民用航空飞行学院 数据分析师
数分?真的还值得去学吗?
作为一个双非大数据专业的大四学生,自己在大三选择择业方向时,毫不犹豫的选择了数据分析作为自己一开始的求职方向,那么作为花费很多精力学习数分,找过多段数据实习,且经历了一整个秋招的可怜大学生,关于数分的态度又是怎样呢?首先我想先根据自己的过往经验来给数分下一个定义,目前的数分岗主要有两种情况,一种是非常纯粹的数分,涉及AB测试,数据埋点,机器学习相关内容的,这一部分岗位对技术和学历的要求极强;而另一部分岗位则是偏向业务侧,相较于数分,可能更偏向数据策略运营,这一类岗位在部分公司也会直接写成运营岗。相信每一个对数分有兴趣的同学,或多或少都在网上看到过,纯粹的数分岗是非常吃学历的,这一点我深有体会,...
为了入行xx岗,我学了_...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
招聘动态
查看更多
牛客网申助</br>备战春招大杀器
27届寒假/转正实习汇总
全站热榜
更多
1
...
27届实习全时间全方位大体指南
2111
2
...
麻了,跟不上天赋哥
949
3
...
双非走测开投了1000份只有俩面试
877
4
...
男人还是得自己先富起来
736
5
...
绷不住了,找了一个月实习嵌入式还找不到
710
6
...
美图年终奖人均1万块,还得是别人家的公司
695
7
...
我多次拒绝加班,好像最后也没什么
620
8
...
前端小厂实习,偷产出是要偷什么呢,怎么偷
581
9
...
末9本 27届 java后端 找实习简历求拷打
564
10
...
不是猝死,是活活累死
553
创作者周榜
更多
正在热议
更多
#
除了Java,最推荐学什么技术?
#
222次浏览
11人参与
#
秋招报数:你投了多少家公司?
#
148096次浏览
944人参与
#
滴滴求职进展汇总
#
298131次浏览
2437人参与
#
你觉得早上几点上班合适?
#
94139次浏览
351人参与
#
如何提高实习转正率?
#
80541次浏览
487人参与
#
一人一个landing小技巧
#
143654次浏览
1500人参与
#
Tplink求职进展汇总
#
199029次浏览
937人参与
#
我和mentor的爱恨情仇
#
102150次浏览
923人参与
#
聊聊你的被动加班经历
#
6795次浏览
86人参与
#
你觉得什么岗位会被AI替代
#
35139次浏览
233人参与
#
实习期间如何提升留用概率?
#
230628次浏览
1785人参与
#
美的求职进展汇总
#
343954次浏览
2064人参与
#
用一句话形容你的团队氛围
#
36234次浏览
281人参与
#
牛客十周岁生日快乐
#
207287次浏览
1934人参与
#
互联网公司评价
#
480187次浏览
4094人参与
#
秋招的破防瞬间
#
500428次浏览
2595人参与
#
你觉得mentor喜欢什么样的实习生
#
44828次浏览
986人参与
#
听劝,这个公司值得去吗
#
648860次浏览
1993人参与
#
如果工作一直消耗情绪还要继续做吗
#
18222次浏览
83人参与
#
今年形式下双非本找得到工作吗
#
278030次浏览
1599人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务