java tableau thread-safety

Existe-il des problèmes de concurrence d'accès avec un fil de la lecture à partir d'un index d'un tableau, tandis qu'un autre thread écrit à un autre indice de la matrice, aussi longtemps que les indices sont différents?

par exemple (dans cet exemple, pas nécessairement recommandé pour une utilisation réelle, uniquement pour illustrer mon point de vue)

 class Test1
 {
     static final private int N = 4096;
     final private int[] x = new int[N];
     final private AtomicInteger nwritten = new AtomicInteger(0);
     //invariant: 
     //all values x[i] where 0 <= i < nwritten.get() are immutable

     //read() is not synchronized since we want it to be fast
     int read(int index) {
         if (index >= nwritten.get())
             throw new IllegalArgumentException();
         return x[index];
     }
     //write() is synchronized to handle multiple writers
     //(using compare-and-set techniques to avoid blocking algorithms
     //is nontrivial)
     synchronized void write(int x_i) {
         int index = nwriting.get();
         if (index >= N)
             throw SomeExceptionThatIndicatesArrayIsFull();
         x[index] = x_i;
         //from this point forward, x[index] is fixed in stone
         nwriting.set(index+1);
     }     
 }

edit: critiquer cet exemple n'est pas ma question, j'ai littéralement veux juste savoir si d'accès au tableau à un indice, parallèlement à l'accès d'un autre indice, pose des problèmes de concurrence d'accès, ne pouvait pas penser à un exemple simple.

InformationsquelleAutor Jason S | 2009-07-15