如何声明在Java中易失性的数组元素?

2022-09-01 04:37:48

有没有办法在Java中声明数组元素?即volatile

volatile int[] a = new int[10];

声明数组引用,但数组元素(例如 )仍然不是易失性的。所以我正在寻找类似的东西volatilea[1]

volatile int[] a = new volatile int[10];

但它不是那样工作的。有可能吗?


答案 1

使用或或AtomicIntegerArrayAtomicLongArrayAtomicReferenceArray

该类实现一个 int 数组,可以通过类和方法使用可变语义访问其各个字段。然后,从一个线程调用将保证另一个线程调用将读取值 y(直到将另一个值读取到位置 x)。AtomicIntegerArrayget()set()arr.set(x, y)arr.get(x)

看:


答案 2

不可以,不能使数组元素易失性。另请参见 http://jeremymanson.blogspot.com/2009/06/volatile-arrays-in-java.html