무텍스(Mutex)는 MUTual EXclusion(상호배제)의 의미이며, 특정 시점에 프로세스 또는 스레드 간에 특정 자원이나 역할에 대해 우선권을 갖는 문제를 교통 정리하기 위해서 시스템에서 제공하는 자원 입니다. 유닉스/리눅스나 윈도우 모두 대표적인 IPC(Inter Process Communication) 자원으로 공유메모리, 메시지 큐, 세마포어를 제공하는데 세마포어와 유사한 개념이라고 할 수 있습니다. 자원의 우선권을 획득하기 위해 줄서고, 자원 사용이 끝나면 반환하는 형태는 Mutex나 세마포어나 유사하다고 볼 수 있습니다. 여러 프로세스나 스레드가 동시에 작업을 할 수 없는(동시에 작업을 한다면 문제가 생기는...) 부분에 Mutex를 배치함으로서 시스템 전체적으로 정확한 작업을 할 수 있..
다중 쓰레드를 사용하는 프로그램에서 특정 자원이나 특정 코드에 대해서 동시 접근을 차단하고 한번에 하나의 쓰레드만 수행하도록 교통 정리할 필요가 있을 때 사용하는 자원이 뮤텍스(Mutex)입니다. 대표적인 IPC(Inter Process Communication) 자원으로 공유메모리, 메시지 큐와 함께 세마포어(Semaphore)가 있는데 뮤텍스는 값이 1인 세마포어라고도 할 수 있습니다. 세마포어는 통상 정수값을 가지고 프로세스가 접근할 수 있는 여유도를 지정한다면 뮤텍스는 값이 1이므로 한번에 단 하나의 프로세스나 쓰레드만 접근할 수 있도록 할 수 있는 것입니다. 뮤텍스는 프로그램 중복 실행 방지 보다는 실행중 자원 관리에 사용하는 것이 핵심 용도이지만 프로그램 중복 실행 방지를 통해서 뮤텍스 맛보기..