我创建了一个具有多种方法的类,并且该类可以随时只有单个实例,就像单例行为和没有任何实例变量的类一样。
现在我很困惑,如果对单个方法的多次调用是否会给出预期的结果,如果该方法仅具有会受到多个线程影响的参数?
因为一旦分配了内存,该方法就在堆栈中,然后同时线程调用该方法,结果是什么?
最佳答案
每个线程都有自己的、独立的、私有(private)的堆栈。当线程进入方法时,所有参数和局部变量都在该线程的本地堆栈中,其他线程无法访问它。
因此,如果两个线程进入同一个方法,但这个方法只访问它的参数和局部变量(并且两个线程中的参数并不指向同一个对象),那么一个线程的执行是不可能干扰的与对方的线程执行。它几乎就像两个独立的java进程。
关于java - 多线程调用单例方法会影响局部变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15779585/