Critical Section

동기화는 공유 쓰기 구간을 한 번에 하나로 제한한다

경쟁 조건은 읽기-수정-쓰기 사이에 다른 실행 흐름이 끼어들 때 발생한다.

임계 영역 조건

동시성 안전

상호 배제

한 스레드가 임계 영역에 들어가면 다른 스레드는 기다려야 한다.

진행

임계 영역이 비어 있으면 진입할 스레드가 유한 시간 안에 정해져야 한다.

한정 대기

특정 스레드가 계속 밀려 영원히 못 들어가는 기아를 막는다.

LOADADDSTOREcommit
읽는 법

counter++ 같은 한 줄도 실제로는 여러 단계라서, 보호 범위를 코드 줄이 아니라 상태 변화 단위로 잡아야 한다.