pull/1/head
ruyu.li 4 years ago
parent b459cac60a
commit a777b6053a

@ -24,6 +24,16 @@ JVM包含**堆**、**元空间**、**Java虚拟机栈**、**本地方法栈**、
## JAVA内存模型
Java Memory Model (JAVA 内存模型JMM描述线程之间如何通过内存(memory)来进行交互。具体说来JVM中存在一个主存区Main Memory或Java Heap Memory对于所有线程进行共享而每个线程又有自己的工作内存Working Memory实际上是一个虚拟的概念工作内存中保存的是主存中某些变量的拷贝线程对所有变量的操作并非发生在主存区而是发生在工作内存中而线程之间是不能直接相互访问的变量在程序中的传递是依赖主存来完成的。具体的如下图所示
![JAVA内存模型](images/JVM/JAVA内存模型.jpg)
JMM描述了Java程序中各种变量线程共享变量的访问规则以及在JVM中将变量存储到内存中读取出变量这样的底层细节。所有的变量都存储在主内存中每个线程都有自己独立的工作内存里面保存该线程使用到的变量的副本主内存中变量的一份拷贝。JMM的两条规定
- 线程对共享变量的所有操作都必须在自己的工作内存中进行,不能直接从主内存中读写
- 不同的线程之间无法直接访问其他线程工作内存中的变量,线程变量值的传递需要通过主内存来完成
## JVM内存模型

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Loading…
Cancel
Save