Ist das Neuzuweisen von Feldern atomic und damit Thread-Safe?

sirbender

Top Contributor
Hi,

ich nehme mal CopyOnWriteArrayList als Beispiel:

Alle Schreib-Operationen nutzen:
final void setArray(Object[] a) {
array = a;
}

setArray kann immer nur von einem Thread aufgerufen werden (ReentrantLock). Allerdings koennen 100 Threads gleichzeitig das Feld "array" gleichzeitig nutzen...zum Beispiel ueber dieses iterieren indem sie iterator() aufrufen (was auch foreach implizit tut).

Nun frage ich mich, ob eine Neuzuweisung eines Feldes (wie in setArray gezeigt) immer atomic ist...soll heissen, immer vollstaendig in einem Schritt abgeschlossen ist und damit ein konsistenter array fuer die Lese-Threads vorliegt?
 

Ähnliche Java Themen

Neue Themen


Oben