我了解到,每个类加载器都会将每个类字节码加载到内存中一次,因此当一个线程正在执行某个方法的字节码时,另一个线程会出现?
Foo类的1 个线程 -> 1 个实例 == 没问题。
X线程 -> 1 个实例 -类 Foo == 需要处理,这很清楚。
X个线程 -> X 个相应的实例 -类 Foo == ????
我应该确保方法中没有任何问题吗?如果该方法使用实例级变量,我可以确定它会使用正确的变量吗?
更新:
我看到我的问题有些人不清楚,这里有一个数字示例
我有一个Foo类类型的对象,它没有同步!!
我有该Foo的 5 个实例,每个实例中运行 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个实例访问这个字节码,所以如果我想防止它们在同一个字节码上重叠,我应该怎么做做?
谢谢,亚当。