V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
BarbaraBear
V2EX  ›  Java

Java 内存语义是什么意思啊

  •  
  •   BarbaraBear · 2017-12-24 15:21:41 +08:00 · 4160 次点击
    这是一个创建于 2307 天前的主题,其中的信息可能已经有所发展或是发生改变。

    内存语义是啥意思。

    6 条回复    2017-12-25 09:38:09 +08:00
    q397064399
        1
    q397064399  
       2017-12-24 17:48:29 +08:00   ❤️ 1
    java volatile

    如果是这个的话, 现代计算机 CPU 每个核心有 L1 Cache L2 Cache 然后才是主存,
    volatile 的话 应该指的是讲 值变化后 会立即写入 主存 RAM 然后其它 CPU 核心 是立即可见的话

    描述的不是很清楚,大概意识 应该这样
    palmers
        2
    palmers  
       2017-12-24 20:18:25 +08:00
    我的理解是 java 内存模型
    ipwx
        3
    ipwx  
       2017-12-24 21:17:07 +08:00
    @q397064399 volatile 还管寄存器的问题吧。volatile 禁止使用寄存器缓存某个变量。如果不加的话,不用多核,多线程可能就有问题。
    BarbaraBear
        4
    BarbaraBear  
    OP
       2017-12-24 21:52:44 +08:00
    @q397064399 相当于是一个语法或者一个关键字在内存里面是怎么存储的,可以这样理解么
    q397064399
        5
    q397064399  
       2017-12-25 07:12:40 +08:00
    @ipwx #3 对的,寄存器,,寄存器貌似也是每个核心独立的,
    dumplinger
        6
    dumplinger  
       2017-12-25 09:38:09 +08:00
    就是 Java 的内存模型,或者说 volatile,synchronize,atomic,lock 之类的在 JVM 中的实现原则( JVM 遇到这些关键字的时候会处理)。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   945 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:37 · PVG 04:37 · LAX 13:37 · JFK 16:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.