Я узнал, что каждый класс байтового кода загружается в память один раз для каждого загрузчика классов, поэтому, когда поток выполняет байтовый код какого-либо метода, и появляется другой поток?
1 поток → 1 экземпляр - класса Foo == без проблем.
X потоки → 1 экземпляр - класса Foo == необходимо обработать, это понятно.
X потоки → X соответствующих экземпляров - класса Foo == <? >
Должен ли я убедиться, что в методе ничего не испортилось? если метод использует переменные уровня экземпляра, могу ли я быть уверен, что он будет использовать правильные?
Update:
Я вижу, что мой вопрос не ясен для некоторых, вот пример с цифрами
У меня есть объект класса Foo, у которого нет синхронизации!
У меня есть 5 экземпляров этого Foo с 5 потоками, запущенными для каждого из них, и доступом к параметрам уровня экземпляра, например:
class FOO {
private SomeObject someObject=new SomeObject();
private void problematicMethod(Data data) {
someObject.doSomethingWithTheData(data);
data.doSomethingWithSomeObject(someObject);
// any way you want it use the data or export the data
}
}
Я спрашиваю, есть ли проблема здесь, поскольку есть только 1 байтовый код этого класса и 5 экземпляры этого объекта, которые обращаются к этому байтовому коду, поэтому если я хочу, чтобы они не перекрывались с одним и тем же байтовым кодом, что мне делать?
Спасибо, Адам.