JUC并发编程DAY07

Volatile

可见性和有序性(禁重排)

写后读

内存屏障(重点)

 

没有原子性

加载计算赋值----非原子操作---写丢失问题

指令禁重排:存在依赖关系,禁止重排序

面试题

1.可见性:对于一个被volatile修饰的变量,写操作,这个变量的最新值会立即刷新回主内存中

读操作,总是可以读取这个变量的最新值,也就是这个变量最后被修改的值

2.没有原子性

3.禁重排

4.内存屏障:他使得CPU或者编译器对屏障指令的 前 后 的内存操作 进行排序约束

阻止屏障两边的指令进行重新排序

写加入屏障,强制将线程私有工作区内存的数据刷回主内存

读加入屏障,线程私有工作区的内存数据失效,重新到主内存中获取最新数据

 

5.volatile写之前的操作,都禁止重排序到volatile之后

volatile读之后的操作,都禁止重排序到volatile之前

volatile写之后volatile读,禁止重排序

以上,内存屏障不好理解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值