【发布时间】:2010-06-03 16:44:36
【问题描述】:
假设我有两个线程和一个对象。一个线程分配对象:
public void assign(MyObject o) {
myObject = o;
}
另一个线程使用该对象:
public void use() {
myObject.use();
}
变量 myObject 是否必须声明为 volatile?我试图了解何时使用 volatile 何时不使用,这让我感到困惑。第二个线程是否有可能在其本地内存缓存中保留对旧对象的引用?如果没有,为什么不呢?
非常感谢。
【问题讨论】:
-
您使用的是什么版本的 Java?
-
我正在移动设备上开发。它基本上是 java 1.4.x