我有一个类似于以下的静态类数组:
public class Entry {
private String sharedvariable1= "";
private String sharedvariable2= "";
private int sharedvariable3= -1;
private int mutablevariable1 = -1
private int mutablevariable2 = -2;
public Entry (String sharedvariable1,
String sharedvariable2,
int sharedvariable3) {
this.sharedvariable1 = sharedvariable1;
this.sharedvariable2 = sharedvariable2;
this.sharedvariable3 = sharedvariable 3;
}
public Entry (Entry entry) { //copy constructor.
this (entry.getSharedvariable1,
entry.getSharedvariable2,
entry.getSharedvaraible3);
}
....
/* other methods including getters and setters*/
}
在我的程序中的某个时刻,我访问了该对象的一个实例,并使用上面的复制构造函数对其进行了复制。然后我更改上面两个可变变量的值。该程序在多线程环境中运行。 请注意。所有变量在穿线前都设置了它们的初始值。 只有在程序被线程化并复制后,变量才会改变。我相信它是线程安全的,因为我只读取静态对象,而不是写入它(即使是共享变量 3,尽管只读取 int 和可变对象)并且我只更改静态对象的副本(以及正在一个线程中制作副本)。但是,我想在这里确认我的想法是正确的。
有人可以评估我在做什么吗?