semaphore
세마포어(Semaphore)
세마포어멀티스레드나 멀티프로세스 환경에서는 여러 실행 흐름이 동시에 하나의 공유 자원에 접근할 수 있기 때문에, 예상치 못한 충돌이나 오류가 발생할 수 있다.이를 방지하기 위해 등장한 동기화 도구 중 가장 기본적이면서 강력한 것이 바로 세마포어(Semaphore)이다.세마포어는 크게 카운팅 세마포어와 이진 세마포어로 나뉘며, 이 글에서는 두 종류를 각각 개념부터 동작 방식, 예외 사항까지 정리한다.1. 범용 세마포어 (카운팅 세마포어)개념카운팅 세마포어는 정수 값을 가지는 동기화 객체로, 여러 개의 동일한 공유 자원을 보호할 때 사용된다.세마포어의 값은 현재 사용 가능한 자원의 수를 의미하며, 프로세스나 스레드가 자원을 사용할 때는 값을 감소시키고, 반납할 때는 값을 증가시킨다.연산초기화: 자원의 개수만..