java线程学习笔记
程序员文章站
2022-05-04 18:18:31
...
java线程运行基本原理
Java Virtual Machine Stacks (Java 虚拟机栈)
JVM中由堆、栈、方法区所组成,其中栈内存就是给线程使用,每个线程启动后,虚拟机就会为其分配一块栈内存。
- 每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存
- 每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法
public class TestFrame {
public static void main(String[] args) {
method1(10);
}
private static void method1(int x) {
int y = x + 1;
Object m = method2();
System.out.println(m);
}
private static Object method2() {
Object n = new Object();
return n;
}
}
- 类加载,将方法的字节码存入方法区
- 启动主线程,为主线程分配栈内存,进行任务调度
- 执行主方法,分配栈帧 (局部变量表会一次性为创建所有局部变量)
- 调用 method1 为method1 分配栈帧内存
上一篇: java多线程学习笔记
下一篇: JAVA学习笔记——多线程