java - 对atomicintegerarray的陈旧引用可能吗?

时间:2011-07-14 16:17:25

标签: java atomic

当我在多线程环境中为一个变量分配一个新的AtomicIntegerArray实例时会发生什么?

AtomicIntegerArray array = new AtomicIntegerArray(...);
do some stuff
array = new AtomicIntegerArray(...);

在新的作业完成后,某些线程是否仍然可以访问旧实例的陈旧引用?如果是这样,我还需要将原子数组声明为volatile吗?

2 个答案:

答案 0 :(得分:2)

如果array对其他线程(例如类成员变量)可见,那么是的,它也需要是易失性的。

答案 1 :(得分:0)

您的array变量似乎是一个局部变量,根据定义,多个线程无法访问该变量。

但是,如果它确实是一个实例变量,那么是的,其他线程可以看到陈旧的值,就像它们可以与任何其他实例变量一样。实例变量引用的内容不会影响访问该实例变量的方式。