У меня вопрос о вызове метода нескольких потоков в Java. Скажем, у нас есть одноэлементный объект, а его класс объявлен следующим образом:
public class SomeClass {
public void someMethod(SomeValueObject object) {
if (object.condition1) {
...
}
if (object.condition2) {
...
}
if (object.condition3) {
...
}
}
}
Мне интересно, является ли этот одноэлементный объект одновременно доступным, а его someMethod вызывается с отдельными экземплярами SomeValueObject, есть шанс, что случайный поток изменит ссылку объекта для другого вызова метода потока и беспорядка что? А как насчет полей, созданных внутри области метода? Что я не знаю, существует ли какой-либо отдельный контекст метода для каждого потока, вызывающего метод, или контекст метода одинаковый для всех потоков, вызывающих его? Если это последний случай, мне кажется, мне нужно синхронизированное ключевое слово для обеспечения безопасности потоков или использовать отдельные экземпляры SomeClass для каждого потока (в случае, если мне требуется более быстрое выполнение по оптимизации памяти). Не могли бы вы объяснить мне эту проблему?
P.S. Спасибо за все ваши ответы, ребята!