JVM内存模型
2020-10-15 16:35:07 0 举报
jvm 单线程模型, 多线程模型
作者其他创作
大纲/内容
线程2(Thread2)
源代码
工作内存
main()
CPU 缓存
sv1(1/10)
flag = false--true;
JVM 多线程内存模型
read
操作数栈
use
flag = false;
assign
package day03;public class DuoXianChen { public static volatile boolean flag = false; public static void dome() throws InterruptedException { new Thread(new Runnable() { @Override public void run() { System.out.println(\"Thread1-1-\" + flag); while (!flag){ } System.out.println(\"Thread1-- end\"); } }).start(); Thread.sleep(2000); new Thread(new Runnable() { @Override public void run() { test(); } }).start(); } public static void test() { flag = true; System.out.println(\"Thread2--\" + flag); } public static void main(String[] args) throws InterruptedException { System.out.println(\"main-----\" + flag); dome(); Thread.sleep(1000); System.out.println(\"main-----\" + flag); }}
可以使用 JDK 自带工具调试
cpu总线嗅探机制
栈线程
方法出口
public class Math { private User user; public int compute() { int a = 6; int b = 2; int c = (a + b) * 10 ; return c; } public static void main(String[] args) { Math math = new Math(); math.compute(); }}class User { private String name;}
总线加锁
总线
示例代码: 结果线程1并没有结束运行
java.class 反编译(javap -v xxx.class)
load
计算修改值flag
主内存修改完之后unlock
JVM 控制
Minor GC
线程1(Thread1)
Metaspace(元空间)
主内存
多核并发缓存架构
共享变量
CPU
共享变量副本
flag = true;
store
write(lock)
sv2(1/10)
flag = false---true;
年轻代
垃圾回收算法1. 引用计数算法2. 可达性分析(根可达) GC ROOTspan style=\"font-weight: normal;\
JVM 虚拟机
Java Math.class
栈帧(main方法)
jdk1.7 之前 永久代jdk1.8 之后 元空间
动态链接
局部变量表
总线(MESI 缓存一致性协议)
Survivor 区(minor GC- 垃圾回收)
read (lock)
JVM 数据原子操作
Object 结构图
write(unlock)
模型图
.....
线程
true
主内存 RAM
Young Gen (-Xms -Xmx)
CPU 寄存器
堆
-XX:PermSize-XX:MaxPermSize
栈(线程)
主内存(RAM)
程序计数器
JVM Heap (-Xmn)
方法区(元空间 jdk1.8)常量 + 静态变量 + 类元信息
机器的物理内存
其他线程
.......
write
执行引擎
总线加锁和MESI缓存一致性 的区别在于 加锁的位置不一样
本地方法栈
JVM 单线程内存模型
栈帧compute()
cpu 总线嗅探机制 (监听)
Classfile /G:/gongsi/jvm/out/production/jvm/day01/Math.class Last modified 2020-10-10; size 594 bytes MD5 checksum 5f028489de1ac0e09f3a1d373c268db7 Compiled from \"Math.java\
Eden(8/10)
MESI缓存一致性
总线嗅探机制(硬件)
类装载子系统
老年代
0 条评论
下一页