对单例方法的多线程调用会影响局部变量吗?

时间:2013-04-03 05:33:05

标签: java memory-management methods

我创建了一个具有多个方法的类,这个类可以只有单个实例,就像单例行为和没有任何实例变量的类一样。

现在我很困惑,如果对单个方法的多次调用将给出预期结果,那么该方法是否只有多个线程影响的参数?
Bcoz的方法是在堆栈一旦分配内存,然后同时线程调用方法,结果是什么?

1 个答案:

答案 0 :(得分:5)

每个线程都有自己独立的私有堆栈。当一个线程进入一个方法时,所有的参数和局部变量都在该线程的本地堆栈中,没有其他线程可以访问它。

因此,如果两个线程进入相同的方法,但此方法只访问其参数及其局部变量(并且参数不指向两个线程中的同一个对象),则一个线程的执行无法干扰与另一个线程执行。它几乎就像两个独立的java进程。