글에 들어가기에 앞서, 세마포어와 뮤텍스의 가장 기본적인 차이점은 세마포어는 signal mechanism 신호 메커니즘이라는 것이다. 프로세스는 자원을 획득하기 위해 wait()과 signal()을 이용하여 작업을 수행한다. 반면에 뮤텍스는 lock mechanism 잠금 메커니즘이다. 프로세스가 리소스를 획득하려면 해당 뮤텍스 객체의 락을 얻어야한다. 세마포어란? 세마포어는 한국어로 '신호기'라는 의미로서, 마치 기찻길의 신호기처럼 두 개의 철도가 충돌하는 것을 막기위해 두 열차의 진입순서를 막아주는 역할을 한다. Semaphore(int permits, boolean fair) 신호기의 역할은 Semaphore 생성자의 파라미터로 들어가는 int permits이 한다. permits은 세마포어가 가..