java还提供了通过原子方式更新数组里的某个元素,Atomic包提供了以下4个类。
AtomicIntegerArray:原子更新整型数组里的元素
AtomicLongArray:原子更新长整型数组里的元素
AtomicReferenceArray:原子更新引用类型数组里的元素
AtomicIntegerArray用法
public class AtomicIntegerArrayTest {
static int[] array = new int[]{1,2};
static AtomicIntegerArray ai = new AtomicIntegerArray(array);
public static void main(String[] args) {
ai.getAndSet(1,6);
System.out.println(ai.get(1));
System.out.println(array[1]);
}
}
输出结果:
6
2
通过结果可以发现,数组通过构造方法传递进去,
this.array = array.clone();在构造器中会克隆一份数组,所以当AtomicIntegerArray对传入的数组的值进行修改时,不会影响传入的数组。