O operație atomică se finalizează indivizibil — niciun alt thread nu vede o stare pe jumătate făcută; vizibilitatea memoriei este dacă scrierile unui thread sunt văzute de altul; memory barriers impun ordonarea astfel încât acele scrieri să devină vizibile. Lock-urile nu sunt singura preocupare — modelul de memorie este.
Atomicitate
O operație atomică (ex. fetch_add, compare-and-swap) se execută ca un singur pas indivizibil, așa că niciun race nu o poate diviza. Hardware-ul și limbajul oferă atomics pentru contoare și flag-uri fără un lock complet.
();
counter.incrementAndGet();
