둘 이상의 실행 흐름이 같은 변수, 파일, 큐를 수정하면 먼저 임계 구역을 찾습니다.
동기화 경쟁 구간
공유 값을 한 번에 바꾸는 것처럼 보여도 실제로는 여러 명령어로 나뉩니다. 그 사이 다른 스레드가 들어오면 결과가 흔들립니다.
01Read
02Compute
03Interrupted
04Write
05Lost update
증가 연산 하나도 읽기와 쓰기가 나뉘면 보호 없이는 안전하지 않습니다.
너무 좁으면 보호가 새고, 너무 넓으면 대기와 교착 위험이 커집니다.
반복 실행, ThreadSanitizer, 로그 순서 비교로 재현성을 높입니다.