为了账号安全,请及时绑定邮箱和手机立即绑定

细说Java多线程之内存可见性

难度中级
时长57分
学习人数
综合评分9.63
181人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.4 逻辑清晰
指令重排序还是第一次听说,学习了又
讲的很透彻,很好。有深度,某内毕业生路过,点赞!
大神讲的很到位,点赞
若变量被volatile修饰,当在对该变量进行修改时,JVM会多执行一个lock操作,该操作是对寄存器的值加0,主要作用是将本线程(CPU)的Cache写入主内存,并引起其他线程的cache的无效,相当于对Cashe的变量做了一次store和write操作(参见JVM主内存与工作内存的8种交互方式以及相应的8种约束),从而导致volatile的可见性。synchronized的原子性是利用了JVM内存交互的lock和unlock及其对应约束条件来做到的
不错,6666.
我测试的不行 为什么
get xin skill了,谢谢teacher

最新回答 / weibo_王延武_0
单核没关系。多核有关系。多核由于java为了提升效率进行了指令重排,所以执行顺序会不同。
重排顺序可能根据地址连续有关系
ピカチュウ也叫Pikachu古时称为皮卡丘。
选不了答案?
讲的非常不错,第一遍每看多懂,在来一遍!!!
非常不错,赞一个
课程须知
学习本课程前,你需要熟练掌握Java的基础语法,熟悉Java多线程的基础知识,以及synchronized实现线程同步的方法。
老师告诉你能学到什么?
1、内存可见性 2、指令重排序 3、as-if-serial语义 4、synchronized实现可见性 5、volatile实现可见性

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消