여러 스레드나 프로세스가 같은 메모리, 파일, 레코드에 접근합니다.
교차 실행 타임라인
LOAD
메모리의 counter를 레지스터로 읽음
ADD
레지스터 값에 1을 더함
STORE
계산 결과를 다시 메모리에 씀
시간
Thread A
Thread B
공유 counter
1
LOAD
R1 = 0
0
아직 변경 없음
2
LOAD
R2 = 0
0
같은 값을 읽음
3
ADD
R1 = 1
0
레지스터만 바뀜
4
ADD
R2 = 1
0
메모리는 그대로
5
STORE
counter = R1
1
A의 증가 반영
6
STORE
counter = R2
1
기대값은 2