JVM内存模型和JMM(Java内存模型)的异同小结

1、JVM内存模型和JMM(Java内存模型)不是一回事,JMM来源于JSR-133:memory_model-1_0-pfd-spec.pdf.

     JMM的目的是为了解决Java多线程对共享数据的读写一致性问题,通过Happens-Before语义定义了Java程序对数据的访问规则,修正之前由于读写冲突导致的Cache数据不一致的问题。具体到Hotspot VM的实现,主要是由OrderAccess类定义的一些列的读写屏障来实现JMM的语义。

    JVM内存模型则是指JVM的内存分区。

2、Java内存模型和操作系统内存模型的关系

    

3、JVM的内存结构

   


4、对于JMM和JVM本身的内存模型,这两者本身没有关系。如果一定要勉强对应,则从变量,主内存,工作内存的定义来看,主内存主要是对应于Java堆中的对象实例数据部分,而工作内存则对应于虚拟机栈中的部分区域。从更低层次上说,主内存就是物理内存,而为了获取更好的执行速度,虚拟机(甚至是硬件系统本身的优化措施)可能会让工作内存优先存储于寄存器和高速缓存中,因为运行时主要访问–读写的是工作内存。


更多深入了解文档:

http://www.infoq.com/cn/profile/程晓明

 https://www.cnblogs.com/chihirotan/p/6486436.html

https://blog.csdn.net/sc313121000/article/details/40266531

https://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html

http://tutorials.jenkov.com/java-concurrency/java-memory-model.html

https://blog.csdn.net/u012152619/article/details/46968883

https://www.jianshu.com/p/743f5abd3383?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

https://www.jianshu.com/p/bf158fbb2432

https://www.jianshu.com/p/e0e80d004a86?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation


你可能感兴趣的:(内存模型)