먼저 생활 비유
공용 화이트보드의 숫자
두 사람이 동시에 10을 읽고 각자 11을 써버리면 두 번 더했지만 결과는 11입니다.
2.3 · 프로세스와 동시성
두 스레드가 동시에 count++를 하면 왜 한 번이 사라질 수 있을까요?
count++는 실제로 읽기, 더하기, 쓰기의 세 동작이라 중간에 다른 스레드가 끼어들 수 있습니다.
먼저 생활 비유
두 사람이 동시에 10을 읽고 각자 11을 써버리면 두 번 더했지만 결과는 11입니다.
컴퓨터 예제로 바꾸기
count = count + 1;잠금으로 한 사람씩 쓰게 하거나, 원자적 증가 연산을 사용해 읽기와 쓰기를 하나처럼 처리합니다.
지금 일어나는 변화
스레드 A와 B가 같은 이전 값을 봅니다.
이 그림에서 기억할 한 문장
스레드 안전은 “동시에 실행돼도 공유 상태가 약속을 깨지 않는가”의 문제입니다.
현재 상태
30초 확인 문제
count++에 경쟁 조건이 생기는 핵심 이유는?
처음 보는 용어 두 개
이 절을 다 읽었다면
스레드 안전은 “동시에 실행돼도 공유 상태가 약속을 깨지 않는가”의 문제입니다.