뮤텍스
IT 위키
더 많은 작업
Mutex; Mutual Exclusion Object
임계구역에 하나의 스레드만 들어가도록 보장하는 동기화 기법
| 구분 | 뮤텍스 | 세마포어 |
|---|---|---|
| 허용 개수 | 1개 (이진) | N개 (계수 가능) |
| 소유권 | 있다 — 잠근 스레드만 해제 | 없다 — 다른 스레드도 신호 가능 |
| 용도 | 자원 하나에 대한 배타적 접근 | 자원 N개의 사용 개수 관리 |
| 비유 | 화장실 열쇠 1개 | 좌석 N개짜리 대기표 |
이진 세마포어(값이 0 또는 1)는 뮤텍스와 비슷해 보이지만, 소유권이 없어서 잠그지 않은 스레드가 풀어 버릴 수 있다는 점이 다르다.
- 교착상태 : 여러 뮤텍스를 서로 다른 순서로 잠그면 발생한다. 잠금 순서를 정해 두면 예방된다.
- 우선순위 역전 : 낮은 우선순위 스레드가 잠금을 쥔 채 선점되면 높은 우선순위 스레드가 대기한다. 우선순위 상속으로 완화한다.
- 임계구역은 짧게 유지한다. 길면 병렬성이 떨어진다.