HANDLE WINAPI CreateSemaphore(
__in_opt LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
__in LONG lInitialCount,
__in LONG lMaximumCount,
__in_opt LPCTSTR lpName
);
뮤텍스와 비슷하지만 임계영역에 접근 가능한 쓰레드 개수를 조절하는 기능 존재.
lpSemaphoreAttributes : 보안 속성을 지정하기 위한 매개변수.
lInitialCount : 이 값을 기반으로 임계 영역에 접근 가능한 쓰레드의 개수를 제한한다.
lMaximumCount : 세마포어가 지닐 수 있는 값의 최대 크기를 지정.
이 값이 1이 될 경우 뮤텍스와 동일한 기능을 하는 바이너리 세마포어가 구성.
기본적으로 lInitialCount로 전달되는 값보다 커야 한다.
lpName : 세마포어에 이름을 붙이기 위해 사용.
세마포어 생성될 때 InitialCount값에 의해 초기 카운트가 결정.
카운트가 0인 경우 Non-Signaled상태, 1 이상인 경우 Signaled상태.
WaitForSingleObject함수를 호출할 경우, 카운트 값이 하나씩 감소
'My Study > Function' 카테고리의 다른 글
CreateEvent (0) | 2010.02.25 |
---|---|
ReleaseSemaphore (0) | 2010.02.25 |
ReleaseMutex (0) | 2010.02.25 |
CreateMutex (0) | 2010.02.25 |
InterlockedIncrement (0) | 2010.02.25 |