HANDLE WINAPI CreateMutex(
__in_opt LPSECURITY_ATTRIBUTES lpMutexAttributes,
__in BOOL bInitialOwner,
__in_opt LPCTSTR lpName
);
lpMutexAttributes : 보안속성 지정, 핸들 상속 여부
bInitialOwner : 뮤텍스는 뮤텍스 오브젝트를 생성하는 쓰레드에게 기회를 먼저 줄 수 있다.
크리티컬 섹션처럼 먼저 차지하는 사람이 임자가 되게 할 수도 있고(FALSE전달)
뮤텍스를 생성하는 쓰레드가 먼저 기회를 얻을 수도 있다(TRUE전달).
이를 결정하는 전달인자.
lpName : 뮤텍스에 이름을 붙여주기 위해 사용. 이름은 NULL로 끝나는 문자열로 지정하면 된다.
이름을 주었을 때 생성되는 뮤텍스를 가리켜 Named Mutex라 표현
위 함수를 호출하면 뮤텍스 커널 오브젝트가 생성되는데, 그 커널 오브젝트를 가리키는 핸들을 반환.
뮤텍스는 크리티컬 섹션 오브젝트와 달리 초기화 함수의 호출이 필요없다. 이미 위 함수를 호출하는 과정에서 필요한 모든
초기화가 이뤄지기 때문이다.
프로세스 커널 오브젝트는 종료가 되면 Signaled상태로 된다.
뮤젝트 커널 오브젝트는 누군가에 의해 획득이 가능할 때 Signaled상태가 된다.(사용하고있지 않는 상태)
따라서 WaitForSingleObject함수를 임계 영역 진입을 위한 뮤텍스 획득의 용도로 사용가능
'My Study > Function' 카테고리의 다른 글
CreateSemaphore (0) | 2010.02.25 |
---|---|
ReleaseMutex (0) | 2010.02.25 |
InterlockedIncrement (0) | 2010.02.25 |
DeleteCriticalSection (0) | 2010.02.25 |
LeaveCriticalSection (1) | 2010.02.25 |