본문 바로가기
  • ^ __________ ^ ㄷ ㅜ ㄹ ㅜ ㅁ ㅜ ㄹ
TechTree(IT|Dev|SW)/C | C++ | VC++

srwlock vs critical section 비교

by DURUMUL 2026. 2. 11.
SRWLock(Slim Reader-Writer Lock)과 Critical Section(임계 구역)은 Windows의 대표적인 유저 모드 동기화 객체입니다. 읽기/쓰기 빈도가 다른 다중 스레드 환경에서는 SRWLock이 읽기 성능(동시 접근)에서, 간단한 단일 배타적 제어에는 Critical Section이 재귀적(Recursive) 잠금 지원 면에서 유리합니다.
주요 비교 특징:
  • 성능 및 구조: SRWLock은 구조가 단순(포인터 하나)하여 가볍고 빠르며(Slim), 읽기 작업이 빈번할 때 탁월한 성능을 발휘합니다. Critical Section은 상대적으로 무겁지만 기능이 더 많습니다.
  • 잠금 방식: SRWLock은 읽기 전용(Shared)과 쓰기 전용(Exclusive) 잠금을 분리하여 여러 스레드가 동시에 읽는 것을 허용합니다 yuchi's development. 반면, Critical Section은 획득 시 무조건 배타적입니다.
  • 재귀 호출: Critical Section은 동일 스레드에서 반복 잠금(Recursive Lock)을 지원하지만, SRWLock은 재귀 잠금을 지원하지 않아 데드락 위험이 있습니다 Oopy 우피.
요약표
구분SRWLockCritical Section
주 목적 읽기/쓰기 분리를 통한 고성능 단순 배타적 제어 (소유권)
읽기 동시성 지원 (다수 스레드) 지원 안 함 (단일 스레드)
재귀적 잠금 지원 안 함 지원 함
성능 매우 빠름 빠름
구조 크기 매우 작음 (포인터 크기) 상대적으로 큼
일반적으로 읽기 작업이 많고 재귀적 잠금이 필요 없는 경우 SRWLock을, 단순한 단일 쓰레드 기반 제어가 필요하면 Critical Section을 사용하는 것이 좋습니다.