首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
广东周润发
阿里巴巴_智能信息_Android
内存屏障
点赞
回复
分享
发布于 2017-04-23 16:25
小度小度
南京大学 Java
volatile不能保证线程安全
点赞
回复
分享
发布于 2017-04-23 16:27
李香兰
北京理工大学
不可能同时写,当某个线程a往主存写的时候,会锁住cpu缓存行,导致另一个线程b的相同变量无法同时写入与读取,当a写完时,由happen-before规则,b线程会重新读取主存最新的值,也就是说,volatile是轻量级的synchronized,不会导致线程切换。
点赞
回复
分享
发布于 2017-04-23 16:38
牛客2329558号
南京大学 Java
volitile能保证读和写的原子性
点赞
回复
分享
发布于 2017-04-23 17:14
牛客2692795号
厦门大学
volatile 不能保证原子性!!!绝对不能。认为能的是对java理解很大的常见误区。 volatile 保证的是内存可见性。也可用来防止指令重排序(就是上面有人提到的内存屏障,也是happens-before的一条原则)
点赞
回复
分享
发布于 2017-04-23 18:23
就只面了腾讯一家公司
北京师范大学 Java
可能读到被修改之前的值。因为读到缓存的数据了。
点赞
回复
分享
发布于 2017-04-23 18:37
layman
汕头市业余大学
楼主可以看看一位大神海子的一篇博客 volitale讲的很详细
点赞
回复
分享
发布于 2017-04-23 20:46
风的方向zlw
西安电子科技大学 Java
个人看法:如果写操作是i++这类的操作是会出现并发问题的,因为自增操作会分解成三个操作完成,这个大家都知道;如果写操作是i = 1这类赋值操作就不会有问题,因为赋值操作在jvm层面也是原子操作,加上volatie实现的可见性,就可以保证多个线程对这个变量的修改一定会有个先后顺序,最后这个变量的值就是最后执行的线程修改的值。
点赞
回复
分享
发布于 2017-04-23 21:50
GoOrNotGo!
中山大学 Java
对于基本变量的赋值和读取能保证原子性,其他不行。既然问的是使用了volatile,那我们的前提就是使用正确的情况下,根据happen-before原则,是不会有问题的,不可能是同时
点赞
回复
分享
发布于 2017-04-23 23:28
拖仔
东北大学 C++
至少在cpp里,不能保证线程安全…只是禁止了编译器的优化工作…
点赞
回复
分享
发布于 2017-04-23 23:55
mafee
中国传媒大学 Java
内存可见性和禁止指令重排序
点赞
回复
分享
发布于 2017-04-24 07:38
还没有回复哦~
相关推荐
11-23 11:48
北京传媒大学 经理助理
中证登25秋招经验
笔试预计在2024年12月,主要是行测和一些证券市场相关的题目,时间还算宽裕。面试方面,2024年1月会有两轮“伪群面”,一面淘汰率挺高的,内容包括自我介绍和情景题,面试官会根据简历提问。二面则是行为面和专业面,涉及到经济热点。虽然薪资待遇还不错,但竞争激烈,希望大家能顺利通过!
牛客创作赏金赛
点赞
评论
收藏
分享
11-21 18:10
郑州大学 生物制药岗
大哥爆发了?
一个平时非常老实巴交的大哥(有娃有房的80后) 经典表现是领导问他有没有什么意见的时候 他:领导说的都对 我的印象一直是谄媚的职场黄牛 结果刚刚开会的时候 领导给他递了一个水壶说“帮我接壶水” 他接完回来之后说“我希望这个事情不要有下次,我是来上班的不是做这些的” 会议室大概十几个人,陷入了诡异的沉默
一升菌:
爱看再发点
点赞
评论
收藏
分享
11-03 14:38
重庆大学 Java
Offer太多了不知道怎么选啊
AAA求offer教程:
我手都抬起来了又揣裤兜了
点赞
评论
收藏
分享
11-01 08:48
门头沟学院 C++
释放两个offer
给大伙儿释放两个of #美团# #招银网络#
伤心的候选人在吵架:
佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞
评论
收藏
分享
昨天 16:16
山东大学 嵌入式软件工程师
提前预习,Leader的PUA话术
实习er:“你表现得很好,部门领导给你打分都很高,转正希望很大”“过两天新来几个实习生,他们简历很优秀,在XX大厂实习过”“这个项目单独给你做,挤一挤时间完成他,其他实习生我没给,对转正有用”“就你这工作态度,以后哪个公司敢要你?”“这么简单的任务都完成不好,你还想不想转正了?”“你别觉得自己了不起,你离我的要求还差得远呢。”“别人怎么都能做好,就你不行?你是不是能力有问题?”“你要是再这样下去,实习评价肯定好不了。”“我对你很失望,你根本没有发挥出你的潜力。”“你怎么这么笨啊?教了你多少次了还不会,我都怀疑你是不是根本没用心。”“你看看你做的这点事儿,就这水平还大学生呢?我随便找个高中生都比...
你觉得哪一届的校招最难?
上班苦还是上学苦呢?
点赞
评论
收藏
分享
点赞成功,聊一聊 >
点赞
收藏
评论
分享
回复帖子
提到的真题
返回内容
招聘动态
查看更多
字节跳动
2025校园招聘
阿里云管培生
2025届校园招聘
快手Star
2025届招聘
快手
销售类投递专区
全站热榜
1
...
从露宿街头到百万级种子轮融资——我的大学时代经历了什么
3.9W
2
...
字节20多面终究一场空
1.8W
3
...
C++选手秋招总结
1.3W
4
...
华为电话oc了
1.1W
5
...
泡出来啦
1.0W
6
...
秋招圆满结束
9178
7
...
阿里云管培生开奖了
8475
8
...
不装了!牛客就是OFFER判官
8288
9
...
总结一下鼠鼠找实习的历程
6802
10
...
爱信等
6736
正在热议
#
25届秋招总结
#
341232次浏览
3256人参与
#
我的实习求职记录
#
6077886次浏览
83608人参与
#
阿里云管培生offer
#
39545次浏览
566人参与
#
地方国企笔面经互助
#
4812次浏览
12人参与
#
职场吐槽大会
#
89747次浏览
740人参与
#
选完offer后,你后悔学本专业吗
#
22388次浏览
160人参与
#
北方华创开奖
#
39044次浏览
404人参与
#
ai智能作图
#
1209次浏览
32人参与
#
运营商笔面经互助
#
91945次浏览
1329人参与
#
海康威视求职进展汇总
#
401635次浏览
3414人参与
#
如果有时光机,你最想去到哪个年纪?
#
23404次浏览
467人参与
#
国企还是互联网,你怎么选?
#
89711次浏览
697人参与
#
风评不好的公司,你会去吗?
#
20519次浏览
94人参与
#
如何一边实习一边秋招
#
998598次浏览
12679人参与
#
腾讯求职进展汇总
#
197750次浏览
1650人参与
#
银行笔面经互助
#
84235次浏览
888人参与
#
第一份工作应该选择高薪还是大平台
#
88709次浏览
590人参与
#
bilibili求职进展汇总
#
33703次浏览
360人参与
#
许愿池
#
215247次浏览
2536人参与
#
上班苦还是上学苦呢?
#
78024次浏览
723人参与
#
正在实习的你,几点下班
#
53820次浏览
397人参与
#
国央企薪资爆料
#
13130次浏览
96人参与
牛客网
牛客企业服务