我有一个关于
Java中多线程方法调用的问题.假设我们有一个单例对象,它的类声明如下:
public class SomeClass { public void someMethod(SomeValueObject object) { if (object.condition1) { ... } if (object.condition2) { ... } if (object.condition3) { ... } } }
我想知道如果这个单例对象是被同时访问的,并且它的someMethod用不同的SomeValueObject实例调用,有没有机会一些随机线程改变对象引用的另一个线程的方法调用和搞乱事情?那么在方法范围内创建的字段呢?
我不知道的是,是否为每个调用该方法的线程创建了任何单独的方法上下文,或者所有调用它的线程的方法上下文是相同的?如果是后一种情况,我想我需要线程安全的synchronized关键字,或者为每个线程使用不同的SomeClass实例(如果我需要更快的内存优化执行).请你解释一下我的问题
附:感谢你们所有的答案!