0


并发编程(3)-多线程的内存布局

PC 寄存器(Program Counter Register):每一个线程都有自己的 PC 寄存器

Java 虚拟机栈(Java Virtual Machine Stack):每一个线程都有自己的 Java 虚拟机栈
理解:栈是先进后出;若不使每个线程都有各自的Java 虚拟机栈,那么在返回及排列上就有问题了,因为线程会抢进来执行产生冲突

例:static void main1(){
   test1();
}
static void test1(){

}
static void main2(){
   test2();
}
static void test2(){
   
}
//如果无各自的Java 虚拟机栈的话便会如下发布发生乱套
// test2()
// test1()
// main2()  *抢进来了*
// main1()

本地方法栈(Native Method Stack):每一个线程都有自己的本地方法栈
//原因与虚拟机栈基本一样

堆(Heap):多个线程共享堆

方法区(Method Area):多个线程共享方法区

标签: java

本文转载自: https://blog.csdn.net/weixin_59624686/article/details/123964023
版权归原作者 汤键.TJ 所有, 如有侵权,请联系我们删除。

“并发编程(3)-多线程的内存布局”的评论:

还没有评论