상호 배제(mutual exclusion, Mutex)를 활용하여 프로그램 중복 실행 방지하기
다중 쓰레드를 사용하는 프로그램에서 특정 자원이나 특정 코드에 대해서 동시 접근을 차단하고 한번에 하나의 쓰레드만 수행하도록 교통 정리할 필요가 있을 때 사용하는 자원이 뮤텍스(Mutex)입니다. 대표적인 IPC(Inter Process Communication) 자원으로 공유메모리, 메시지 큐와 함께 세마포어(Semaphore)가 있는데 뮤텍스는 값이 1인 세마포어라고도 할 수 있습니다. 세마포어는 통상 정수값을 가지고 프로세스가 접근할 수 있는 여유도를 지정한다면 뮤텍스는 값이 1이므로 한번에 단 하나의 프로세스나 쓰레드만 접근할 수 있도록 할 수 있는 것입니다. 뮤텍스는 프로그램 중복 실행 방지 보다는 실행중 자원 관리에 사용하는 것이 핵심 용도이지만 프로그램 중복 실행 방지를 통해서 뮤텍스 맛보기..
프로그래밍
2015. 4. 15. 11:57