공유 상태에서 따로 확인할 세 보장

동일 증상처럼 보여도 visibility, atomicity, ordering의 해결 수단은 다르다.

Shared mutable state

Visibility

다른 thread가 최신 write를 볼 수 있는가

volatile·lock

Atomicity

read-check-write가 쪼개지지 않는가

lock·atomic

Ordering

두 action 사이 순서 edge가 있는가

happens-before

핵심: volatile field 하나는 여러 단계 transaction을 원자적으로 만들지 않는다.