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