- 커널 오브젝트는 두가지의 상태를 지닌다 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

+ Recent posts