mutexsemaphoresynchronization

Mutex와 Semaphore의 차이를 설명해 주세요

예상 시간
7
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

binary semaphore와 mutex는 같은가요?

부가 설명

둘 다 기다리게 만든다는 점 때문에 섞이기 쉽습니다. 차이는 무엇을 표현하려는지에 있습니다. 공유 변수 하나를 동시에 수정하지 못하게 막고 싶다면 mutex가 자연스럽습니다. 반대로 DB connection pool처럼 동시에 10개까지만 쓰게 하고 싶다면 semaphore가 더 잘 맞습니다.

Binary semaphore와 mutex는 비슷해 보이지만 목적이 다릅니다. 구현이나 OS에 따라 세부 의미는 다를 수 있지만, 개념적으로 mutex는 ‘한 명만 들어가는 방의 열쇠’, semaphore는 ‘남은 좌석 수를 세는 카운터’에 가깝습니다. Mutex는 소유권, semaphore는 자원 수 제어에 초점이 있습니다.

한 줄 정리

Mutex는 한 번에 한 실행 흐름만 통과시키는 열쇠이고, semaphore는 동시에 쓸 수 있는 자원 수를 세는 카운터입니다.