2 zj8692286 zj8692286 于 2014.11.24 22:13 提问

关于Java栈的问题,它是共享的吗

我在Java虚拟机那本书里面看到说虚拟机栈是线程私有的,但是为什么网上一大片都说栈可以共享数据?线程私有怎么共享?我的理解是,对于每一个线程,它的栈里面的值是相同的?所以说栈可以共享数据也没什么问题了?

3个回答

YKDSea
YKDSea   Rxr 2014.11.25 10:59
已采纳

栈是线程私有的,意思是说每个线程都有自己的栈。
而栈可以共享数据是说,线程a在栈上的数据,线程b也是可以访问的(比如a把某个栈上变量传给了b),因为他们在一个进程内,数据访问是没有问题的。

对于每一个线程,栈里面的内容当然不一样,你要去找文章看看栈里面保存的是什么内容。

LockJVM
LockJVM   2014.11.24 22:16

栈是线程私有的吧,应该不共享的。或者只能说为了优化部分空间是共享的

caozhy
caozhy   Ds   Rxr 2014.11.24 22:18

线程有独立的堆栈,但是共享堆。

Csdn user default icon
上传中...
上传图片
插入图片