0
点赞
收藏
分享

微信扫一扫

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

求索大伟 2022-04-05 阅读 62
java

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):多个线程共享方法区
 

举报

相关推荐

0 条评论