工作内存是堆内存吗? 主内存呢? 实在是没想通,我的认知里只有堆内存放对象,栈内存放变量

来源:3-4 线程安全性-可见性

pookly

2019-04-05

写回答

1回答

Jimin

2019-04-06

你好,你问题里提到的你了解的内容,从根本上说的是属于jvm里的内容,我们课程里当前学的是JMM java内存模型,他们其实不是一个层面的内容。JMM他其实java内存定义了一些规范,这些规范需要JVM在实际处理实现时是要遵守的,JMM这些规范为我们实际分析并发问题提供的是根本的理论依据,比如不同线程之间数据交互该依照什么规则、线程做加锁解锁操作必须依照什么规则等等,而JVM则是实际去根据这些规则去提供一些java关键字及java类(synchronized、volatile)并在他们执行时遵守这些规则,因此到jvm层时,你考虑的是一个变量分配在哪里,而在jmm层,你考虑的是变量操作该做怎样的交互,这是他们根本的不同

1
1
pookly
非常感谢!
2019-04-06
共1条回复

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程