Critical Section이란 무엇일까?
Critical Section Critical Section은 (임계구역 또는 공유변수 영역) 병렬프로그래밍에서 둘 이상의 스레드 (멀티스레드)가 동시에 접근해서는 안되는 공유 자원(파일, 입출력, 공유 데이터 등) 을 접근하는 명령문 또는 코드의 일부 영역을 말합니다. 병렬프로그래밍에서 A라는 스레드가 공유 데이터의 값 변경을 시도하는 순간 B라는 스레드가 그 값을 읽는다면 그 값이 변경된 값인지 변경되기 전 값인지 예측할 수 없습니다. 이러한 문제로 동기화 처리 (synchronized)를 반드시 해줘야하며, 임계구역에 실행되는 스레드는 lock을 획득하게 되는데 이 lock은 오직 하나의 스레드만 가질 수 있습니다. 임계 구역 문제를 해결하기 위해서는 아래와 같이 3가지 조건을 충족해야합니다. 상호..
2020.12.23