- 커널 오브젝트는 두가지의 상태를 지닌다 signaled 상태(신호를 받은 상태) , non singnaled 상태(신호를 받지 않은 상태)
- 프로세스 커널 오브젝트의 상태는 한번 signaled 상태로 변하면 다시 non-signaled 상태로 변경되지않는다.
| 커널 오브젝트의 두 가지 상태를 확인하는 용도의 함수
- waitforsingleobject
DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds
);
hHandle이 가르키는 커널 오브젝트가 singled상태가 되었을 때 반환한다. 커널 오브젝트가 singled 상태가 될 때 까지 기다리는 함수이다. dwMilliseconds는 커널 오브젝트가 singled 상태가 될 때까지 기다릴 수 있는 최대 시간을 밀리세컨드 단위로 지정하는 용도로 사용하는 인자이다. 만약 상수를 INFINITE로 전달하는 커널 오브젝트가 singled상태가 될 때 까지 무한정 대기함
- waitformultipleobject
DWORD WaitForMultipleObjects(
DWORD nCount,
const HANDLE *lpHandles,
BOOL bWaitAll,
DWORD dwMilliseconds
);
커널 오브젝트가 둘 이상이고, 이들의 핸들이 배열로 묶여 있다면 이 함수를 활용하는것이 효과적
nCount : 배열에 저장되어 있는 핸들의 개수를 전달
lpHandles : 핸들을 저장하고 있는 배열의 주소정보를 전달
bWaitAll : 관찰대상이 하나라도 singled상태인지 모두 singled상태가 되면 반환할 것인지 결정짓는다
'프로그래밍 > 시스템프로그래밍' 카테고리의 다른 글
비동기 서버 모델 모음 (0) | 2019.10.08 |
---|---|
프로세스 스케쥴링 (0) | 2019.10.01 |
프로세스간의 통신 (0) | 2019.09.30 |
timer 함수 (0) | 2019.09.26 |
1.3 쓰레드의 동기화 (0) | 2019.09.25 |