एक atomic operation अविभाज्य रूप से पूरा होता है — कोई अन्य thread अधूरी स्थिति नहीं देखता; memory visibility यह है कि क्या एक thread के writes दूसरे द्वारा देखे जाते हैं; memory barriers क्रम को लागू करते हैं ताकि वे writes दृश्य बन जाएँ। Locks एकमात्र चिंता नहीं हैं — memory model है।
Atomicity
एक atomic op (जैसे fetch_add, compare-and-swap) एक अविभाज्य चरण के रूप में execute होता है, इसलिए कोई race इसे विभाजित नहीं करती। Hardware और language एक पूर्ण lock के बिना counters और flags के लिए atomics प्रदान करते हैं।
();
counter.incrementAndGet();
