ஒரு atomic operation பிரிக்க முடியாத வகையில் நிறைவடைகிறது — வேறு எந்த thread-ம் ஒரு பாதி-முடிந்த நிலையைப் பார்ப்பதில்லை; memory visibility என்பது ஒரு thread-இன் writes மற்றொன்றால் பார்க்கப்படுகிறதா என்பது; memory barriers ஆனது அந்த writes தெரியும்படி ordering-ஐ கடைபிடிக்கின்றன. Locks மட்டுமே கவலை அல்ல — memory model தான்.
Atomicity
ஒரு atomic op (எ.கா. fetch_add, compare-and-swap) ஒரு பிரிக்க முடியாத படியாக execute ஆகிறது, எனவே எந்த race-ம் அதைப் பிரிப்பதில்லை. Hardware மற்றும் language ஆனது ஒரு முழு lock இல்லாமல் counters மற்றும் flags-க்கு atomics-ஐ வழங்குகின்றன.
();
counter.incrementAndGet();
