volatile로 선언된 배열 필드를 보고합니다. 배열 자체에 대한 액세스는 volatile 필드 규칙을 따르지만 배열의 내용에 대한 액세스는 그렇지 않으므로 해당 선언은 혼동될 수 있습니다.
예:
class Data {
private volatile int[] idx = new int[0];
}
배열 내용에 이와 같은 volatile 액세스가 필요한 경우 java.util.concurrent.atomic을 대신 사용하는 것이 좋습니다.
class Data {
private final AtomicIntegerArray idx = new AtomicIntegerArray(new int[0]);
}