首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
还没有回复哦~
相关推荐
昨天 14:05
门头沟学院 嵌入式软件开发
我们一直都是如履薄冰
oppo
应用软开
22*15+0.5*12
拿到了ssp完美:
真的坎坷,但是你至少拿到这么多offer了!
点赞
评论
收藏
分享
11-27 16:15
北京理工大学 Java
真的有用判断公司加不加班
看一家公司到底加不加班,注意看公司的休息区,如果墙上贴的都是励志口号,就是纯剥削型企业不要回头,如果墙上是什么员工留影,什么体验墙,然后人事说入职有下午茶,团建,各种各样的福利,公司氛围好,大家有说有笑,这种公司加班一定特别狠。最后只有那种墙上一贫如洗,什么都没有的,然后公司里的人无精打采,员工之间也没什么交流的,每个人都在干自己的事,这种一定就是到点下班的
点赞
评论
收藏
分享
今天 10:27
University of Oxford 嵌入式硬件工程师
华为开奖,小奖状
华子终于开奖了, all in 党胜利✌️✌️ #华子oc时间线# #华为求职进展汇总# #华为开奖那些事# #秋招OC许愿#
华子oc时间线
华为求职进展汇总
点赞
评论
收藏
分享
10-09 10:06
蚌埠坦克学院 算法工程师
闺蜜公司
一人来一句闺蜜牛逼
尊尼获获:
闺蜜在哪?
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
招聘动态
查看更多
阿里云管培生
2025届校园招聘
快手Star
2025届招聘
快手
销售类投递专区
富士通(西安)
2025校园招聘
全站热榜
1
...
校招两方/三方违约模板
2.2W
2
...
万字长文讲透金融科技方向的就业机会
9986
3
...
【发帖有奖💰】爆料秋招开奖进展❗
8854
4
...
从露宿街头到百万级种子轮融资②——我的实习期都经历了什么
7722
5
...
秋招圆满结束!!
5516
6
...
华为开奖,详细时间线
3108
7
...
秋招结束!!!
3048
8
...
今年谨慎等华为
2706
9
...
终于轮到我了!!
2644
10
...
秋招也许结束了
2518
正在热议
#
拼多多求职进展汇总
#
235968次浏览
2038人参与
#
ai智能作图
#
26143次浏览
307人参与
#
阿里云管培生offer
#
61355次浏览
1755人参与
#
25届秋招总结
#
405479次浏览
4066人参与
#
25届机械人为了秋招做了哪些准备?
#
25905次浏览
362人参与
#
地方国企笔面经互助
#
6793次浏览
16人参与
#
北方华创开奖
#
66674次浏览
550人参与
#
机械求职避坑tips
#
23118次浏览
247人参与
#
实习,投递多份简历没人回复怎么办
#
2438655次浏览
34727人参与
#
软件开发投递记录
#
1480416次浏览
23940人参与
#
我的实习求职记录
#
6128633次浏览
84000人参与
#
我在牛爱网找对象
#
74668次浏览
554人参与
#
机械人怎么评价今年的华为
#
157622次浏览
1350人参与
#
歌尔求职进展汇总
#
42857次浏览
294人参与
#
如果再来一次,你还会选择这个工作吗?
#
114004次浏览
1131人参与
#
你觉得通信/硬件有必要实习吗?
#
54690次浏览
695人参与
#
如何写一份好简历
#
618513次浏览
8722人参与
#
在职场上,你最讨厌什么样的同事
#
5939次浏览
90人参与
#
如果可以,你希望哪个公司来捞你
#
33106次浏览
193人参与
#
虾皮求职进展汇总
#
88099次浏览
708人参与
#
硬件兄弟们 甩出你的华为奖状
#
78367次浏览
628人参与
#
你觉得第一学历对求职有影响吗?
#
17668次浏览
155人参与
牛客网
牛客企业服务