多线程start();之后会开辟新的栈空间

在多线程中,线程每次开启调用start();方法的时候,都会在内存中开辟一个新的栈空间让run();方法执行:

以下面的一端代码作为解析:

1     public static void main(String[] args) {
2         MyThread mt1 = new MyThread();
3         MyThread mt2 = new MyThread();
4         mt1.run();//这是属于main线程的
5         mt1.start();//开辟一个新的栈空间
6         mt2.start();//又开辟一个新的栈空间
7 
8 
9     }

 

 首先main方法进栈,每次一个线程对象调用start方法都会在内存中开辟一段新的栈空间,如图所示:

 

 

 

posted @ 2020-08-15 21:47  Joker-0927  阅读(292)  评论(0编辑  收藏  举报
// 侧边栏目录