java - volatile 关键字也适用于非基元
我不确定 volatile 关键字是否也应该用于非基元。我有一个类成员,它由一个线程设置/分配,并由另一个线程访问。我应该声明此成员为易失性吗?
private /* volatile */ Object o;
public void setMember(Object o) {
this.o = o;
}
public Object getMember() {
return o;
}
在这里,setMember(...) 由一个线程调用,getMember() 由另一个线程调用。
例如,如果它是布尔值,答案将是肯定的。
我使用的是Java 1.4,在这种情况下,成员是只读的。因此,在这种情况下,我只关心可见性,因此我的问题是关于不稳定的关键字。