C++

뮤텍스와 락

여러 스레드가 같은 자원을 다룰 때 생기는 경쟁 조건을 확인하고, 임계 영역을 뮤텍스와 락으로 보호하는 흐름을 정리합니다.

공유 자원에 동시에 접근하는 구간을 찾고, mutex와 lock_guard로 임계 영역을 보호하는 기준을 정리합니다.

1

경쟁 조건 (Race Condition)

경쟁 조건은 여러 스레드가 동시에 공유 자원(변수, 데이터 구조, 파일 등)에 접근하여 변경하려고 할 때 발생하는 문제입니다.

경쟁 조건(Race Condition)
2

임계 영역 (Critical Section)

경쟁 조건이 발생하는 코드 영역, 즉 여러 스레드가 동시에 접근해서는 안 되는 공유 자원 접근 코드를 임계 영역(Critical Section)이라고 합니다.

동기화(Synchronization)
3

뮤텍스 (Mutex)

뮤텍스(Mutex)는 Mutual Exclusion(상호 배제)의 약자로, 임계 영역에 대한 접근을 제어하여 한 번에 한 스레드만 공유 데이터를 수정하게 하는 동기화 도구입니다.

뮤텍스(Mutex)