开发者社区> 问答> 正文

volatile变量的读取每次都是从主内存中获取么?

volatile变量的读取每次都是从主内存中获取么?

展开
收起
李博 bluemind 2019-03-20 00:21:52 4252 0
4 条回答
写回答
取消 提交回答
  • 精于基础,广于工具,熟于业务。

    语义上是,但是语义中的主存指的是cpu寄存器之外的内存。 volatile禁止读cpu寄存器中的缓存,但是不一定就导致读主存,也可能读cpu cache(一,二,三级cache等),这也是非严格意义上的主存。

    2019-10-30 10:45:54
    赞同 展开评论 打赏
  • volatile 变量每次读取前必须先从主内存刷新最新的值,每次写入后必须立即同步回主内存当中。

    2019-07-17 23:31:24
    赞同 展开评论 打赏
  • 这是由JVM内存模型决定的~ volatile特性 避免了 多CPU下读取到寄存器缓存数据的不一致问题

    2019-07-17 23:31:24
    赞同 展开评论 打赏
  • volatile 变量每次读取前必须先从主内存刷新最新的值,每次写入后必须立即同步回主内存当中。

    2019-07-17 23:31:23
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载
用计算和数据去改变整个世界 立即下载