Mutex는 하나의 실행 흐름만 진입시키는 락, Semaphore는 허용 개수를 관리하는 동기화 도구, Monitor는 공유 데이터와 동기화 규칙을 묶은 고수준 구조입니다.

구분핵심 동작대표 용도
Mutex소유자가 락을 획득하고 해제하며 상호 배제 보장공유 데이터의 임계 구역 보호
Semaphore허용 개수를 획득·반환하며, 부족하면 대기동시 접근 수 제한, 작업 간 신호 전달
Monitor상호 배제와 조건 대기를 공유 데이터의 접근 절차에 결합공유 상태를 안전하게 읽고 수정하며 조건 충족을 기다림

Mutex는 보통 락을 획득한 스레드가 해제해야 하지만, Semaphore에는 같은 소유권 규칙이 없어 다른 스레드가 신호를 줄 수도 있습니다. Java에서는 synchronized와 wait()/notify()가 모니터 기반 동기화의 대표 예입니다.

출처 및 참고자료