java多线程为什么每个线程都有一个单独的栈 ?

这目录


我们都知道 在jvm底层, 每个线程都有对应的一个栈, 那么为什么不是所有线程公用一个栈呢?

分析一下原因

环境 : 现在有两个线程 , 线程1和线程2, 有4个函数A(), B(), C() D(); 线程1执行A(), B()
线程2执行C(), D()

然我们看一下, 在程序执行时发生线程切换, 如果公用一个栈会有什么问题

在这里插入图片描述
在这里插入图片描述

为了避免以上事情发生, 因此每个线程要对应自己的一个栈, 用来存储自己线程的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值