멀티스레드 환경의 난제, 경쟁 상태(Race Condition)와 그 해결 전략
·
CS
1. 경쟁 상태(Race Condition)의 이해경쟁 상태는 둘 이상의 스레드가 공유 자원에 동시에 접근하여 읽거나 쓰는 작업을 수행할 때, 최종 결과가 스레드들의 실행 순서에 따라 달라지는 현상을 의미합니다. 이는 주로 다음 세 가지 상황에서 발생합니다.원자적(Atomic)이지 않은 연산: 하나의 논리적인 연산이 실제로는 여러 개의 저수준 연산(예: 읽기, 수정, 쓰기)으로 구성될 때 발생합니다. 예를 들어, count++와 같은 간단한 증감 연산은 'count 값을 읽기', '읽은 값에 1 더하기', '새로운 값을 count에 쓰기'의 세 단계로 이루어집니다. 이 과정 중에 다른 스레드가 count 값에 접근하면 예상치 못한 결과가 발생할 수 있습니다.임계 구역(Critical Section): 공..