在阅读线程安全时,我遇到了这个问题。如果我的方法是正确的,则本地基元和对象引用存在于堆栈中,而堆栈内的引用指向的实际对象存在于堆中。
但是当涉及到方法本地非原始对象初始化时,这不会导致并发问题吗?我的意思是,如果方法 locals 非原语存在于堆中并且只有指针存在于堆栈中,它与实例变量不一样吗?
有人可以帮我理解这个....
附言
想想两个线程,每个线程都有自己的两个堆栈和一个堆。我的理解是这两个线程将它们的方法本地原始变量保存在它们的堆栈中。我对此没有意见。
但是如果我们有一个带有非原始方法局部变量的方法呢?那么如果该变量的对象存储在堆内,两个线程都可以访问同一个对象,不是吗?因此,如果是这种情况,就会出现同步问题。
这就是我要问的。
谢谢