历年阿里面试题汇总(2017年不断更新中)

Volatile的特征:

A、原子性 
B、可见性

Volatile的内存语义:

当写一个volatile变量时,JMM会把线程对应的本地内存中的共享变量值刷新到主内存。


这里写图片描述


当读一个volatile变量时,JMM会把线程对应的本地内存置为无效,线程接下来将从主内存中读取共享变量。


这里写图片描述


Volatile的重排序

1、当第二个操作为volatile写操做时,不管第一个操作是什么(普通读写或者volatile读写),都不能进行重排序。这个规则确保volatile写之前的所有操作都不会被重排序到volatile之后;

2、当第一个操作为volatile读操作时,不管第二个操作是什么,都不能进行重排序。这个规则确保volatile读之后的所有操作都不会被重排序到volatile之前;

3、当第一个操作是volatile写操作时,第二个操作是volatile读操作,不能进行重排序。

这个规则和前面两个规则一起构成了:两个volatile变量操作不能够进行重排序;

除以上三种情况以外可以进行重排序。

比如:

1、第一个操作是普通变量读/写,第二个是volatile变量的读; 
2、第一个操作是volatile变量的写,第二个是普通变量的读/写;


更多请戳:


历年阿里面试题汇总(2017年不断更新中)

全部评论
欢迎关注我的GiHutb: https://github.com/HuangQinJian 个人博客: http://blog.csdn.net/sinat_35512245
点赞 回复 分享
发布于 2017-03-07 20:37
这个是什么岗的
点赞 回复 分享
发布于 2017-03-07 19:59
有没有c++的?
点赞 回复 分享
发布于 2017-03-06 14:27

相关推荐

球Offer上岸👑:可能是大环境太差了 太卷了 学历也很重要 hc也不是很多 所以很难
点赞 评论 收藏
分享
04-17 18:32
门头沟学院 Java
野猪不是猪🐗:他跟你一个学校,你要是进来之后待遇比他好,他受得了?
点赞 评论 收藏
分享
评论
点赞
76
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务