java内存模型&jvm内存模型

JVM内存模型
JVM内存模式主要分为:程序计数器、JAVA虚拟机栈、本地方法栈、堆和方法区,其中JDK1.8之前方法区的实现为永生代,而JDK1.8之后方法区的实现转为元空间。
各个内存区域的作用在很多博客和书籍上都有介绍,这里就不做赘述(如读者想进一步了解JVM方面的知识,可以看周志明的《深入拆解JVM》)。

Java内存模型
Java内存模型即Java Memory Model(JMM)。
JMM并不真实存在,而只是一个抽象的概念。JMM是和多线程相关的,更准确来说,JMM描述了一组规则或规范,这个规范定义了 一个线程对共享变量的写入时对另一个线程是可见的

Java的多线程之间是通过共享内存进行通信的,而由于采用共享内存进行通信,在通信过程中会存在一系列如可见性、原子性、顺序性等问题,而JMM就是围绕着多线程通信以及与其相关的一系列特性而建立的模型。JMM定义了一些语法集,这些语法集映射到Java语言中就是volatile、synchronized等关键字。

在JMM中,我们把多个线程间通信的共享内存称之为主内存,而在并发编程中多个线程都维护了一个自己的本地内存(这是个抽象概念),其中保存的数据是主内存中的数据拷贝。而 JMM主要是控制本地内存和主内存之间的数据交互的。

java内存模型&jvm内存模型

Original: https://www.cnblogs.com/mzBlogs/p/16561030.html
Author: 重生之我是java程序员
Title: java内存模型&jvm内存模型

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607940/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球