원자적 연산은 분할 불가능하게 완료됩니다 — 다른 어떤 스레드도 절반만 완료된 상태를 보지 못합니다. 메모리 가시성은 한 스레드의 쓰기가 다른 스레드에게 보이는지 여부이고, 메모리 배리어는 그 쓰기가 보이도록 순서를 강제합니다. 락만이 관심사가 아니라 — 메모리 모델이 그러합니다.
원자성
원자적 연산(예: fetch_add, compare-and-swap)은 하나의 분할 불가능한 단계로 실행되므로 어떤 경쟁도 그것을 쪼갤 수 없습니다. 하드웨어와 언어는 완전한 락 없이도 카운터와 플래그를 위한 원자 연산을 제공합니다.
();
counter.incrementAndGet();
