Search
Duplicate
🏆

커널 객체를 이용한 쓰래드 동기화(2) - 이벤트

Category
S/W 엔지니어
Tags
C++
Programming Applications for Microsoft Windows
thread synchronization
쓰래드 동기화
Created time
2004/10/26
제프리 릭터의 Programming Applications for Microsoft Windows. (4th Editon) 에 담긴 내용입니다.
이벤트(Event) 커널 객체: 커널 객체 중 가장 원시적인 객체. 사용 카운트(usage count), 자동 리셋(auto reset)-수동 리셋(manual reset) 상태 여부를 구분하는 불 값, 신호-비신호 상태 여부를 구분하는 불 값으로 구성되더라..
수동 리셋 이벤트: 신호 상태가 되었을 때, 이벤트를 기다리던 모든 쓰래드가 스케쥴 가능 상태가 되더라..
자동 리셋 이벤트: 신호 상태가 되었을 때, 이벤트를 기다리던 쓰래드 중 하나만 스케쥴 가능 상태가 되더라..
용도: 쓰래드 하나가 초기 작업을 한 이후에 다른 쓰래드(들)로 하여금 나머지 작업을 하도록 신호를 보낼 경우에 사용하더라...
//이벤트 생성 HANDLE CreateEvent ( PSECURITY_ATTRIBUTES psa, BOOL fManualReset, BOOL fInitialState, PCTSTR pszName); fManualReset : 수동 리셋(TRUE)인지, 자동 리셋(FALSE)인지의 여부 fInitialState : 신호상태(TRUE), 비신호상태(FALSE)로 초기화되는지의 여부 HANDLE OpenEvent ( DWORD fdwAccess, BOOL fInherit, PCTSTR pszName); //이벤트를 신호 상태로 변경시킨다. BOOL SetEvent ( HANDLE hEvent ); //이벤트를 비신호 상태로 변경시킨다. BOOL ResetEvent ( HANDLE hEvent ); //SetEvent를 호출했다가 바로 ResetEvent를 호출한 것과 동일한 효과.. BOOL PulseEvent ( HANDLE hEvent );
C++
복사