volatile과 AtomicInteger

공유 카운터에서 필요한 보장은 필드 수식어가 아니라 원자적 증가다.

volatile

단일 읽기와 쓰기의 가시성을 제공한다.

복합 증가 손실

AtomicInteger

증가와 결과 반환을 하나의 연산으로 제공한다.

단일 수치 안전

두 Atomic

각 값은 안전하지만 동시 스냅샷은 아니다.

쌍 일관성 부족

AtomicReference

불변 상태 전체를 한 버전으로 교체한다.

복합 스냅샷
판정여러 값의 공동 불변식은 하나의 상태 경계로 묶는다.

핵심: 도구는 필드 개수가 아니라 함께 참이어야 하는 조건을 기준으로 선택한다.