假设我有两个线程和一个对象。一个线程分配对象:
public void assign(MyObject o) {
myObject = o;
}
另一个线程使用该对象:
public void use() {
myObject.use();
}
变量 myObject 是否必须声明为 volatile?我试图了解何时使用 volatile 何时不使用,这让我感到困惑。第二个线程是否有可能在其本地内存缓存中保留对旧对象的引用?如果不是,为什么不呢?
非常感谢。