工作内存是堆内存吗? 主内存呢? 实在是没想通,我的认知里只有堆内存放对象,栈内存放变量
来源:3-4 线程安全性-可见性
![](http://img1.sycdn.imooc.com/user/59bfb10d000149a602000200-100-100.jpg)
pookly
2019-04-05
写回答
1回答
-
你好,你问题里提到的你了解的内容,从根本上说的是属于jvm里的内容,我们课程里当前学的是JMM java内存模型,他们其实不是一个层面的内容。JMM他其实java内存定义了一些规范,这些规范需要JVM在实际处理实现时是要遵守的,JMM这些规范为我们实际分析并发问题提供的是根本的理论依据,比如不同线程之间数据交互该依照什么规则、线程做加锁解锁操作必须依照什么规则等等,而JVM则是实际去根据这些规则去提供一些java关键字及java类(synchronized、volatile)并在他们执行时遵守这些规则,因此到jvm层时,你考虑的是一个变量分配在哪里,而在jmm层,你考虑的是变量操作该做怎样的交互,这是他们根本的不同
112019-04-06
相似问题
关于双重检测(工作内存、主内存)
回答 1
主内存和工作内存
回答 1
主内存的内容和工作区内容不一样
回答 1
关于线程的工作内存和JVM内存划分
回答 1
关于jmm中成员变量在内存中的位置的问题
回答 2