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

Bitte aktiviere JavaScript!
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?
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben