我有一個關於Java中的多線程方法調用的問題。比方說,我們有一個單身的對象,它的類聲明如下:同時調用單身對象的Java方法
public class SomeClass {
public void someMethod(SomeValueObject object) {
if (object.condition1) {
...
}
if (object.condition2) {
...
}
if (object.condition3) {
...
}
}
}
我想知道,如果這單對象被同時訪問和調用不同SomeValueObject情況下它的someMethod,是有機會一些隨機線程更改參考對象爲另一個線程的方法調用和搞砸的東西?那麼在方法範圍內創建的字段呢? 我沒有意識到,是否爲調用該方法的每個線程創建了單獨的Method上下文,或者所有調用該線程的線程的Method上下文都是相同的?如果是後一種情況下,我想我需要線程安全的同步關鍵字,或使用不同的SomeClass的情況下,爲每個線程(如果我需要在內存優化執行速度更快)。你能幫我解釋一下嗎?
P.S.謝謝你們所有的答案!