1.13 이벤트
멀티스레드 프로그래밍을 위한 도구로 임계 영역과 뮤텍스만 있는 것은 아닙니다. 이번에는 이벤트를 알아봅시다.
이벤트는 쉽게 말해서 잠자는 스레드를 깨우는 도구로, 내부적으로 다음 상태 값을 가집니다.
• Reset: 이벤트가 없음이라는 의미입니다. 정수 값으로 표현하자면 0입니다.
• Set: 이벤트가 있음이라는 의미입니다. 정수 값으로 표현하자면 1입니다.
Event event1; void Thread1() { // 이벤트가 신호를 일으킬 때까지 기다린다. event1.Wait(); } void Thread2() { // 이벤트에 신호를 준다. event1.SetEvent(); }
윈도에서는 다음 이벤트 관련 함수가 있습니다.
• CreateEvent: 이벤트를 생성합니다.
• CloseHandle: 이벤트를 파괴합니다.
• WaitForSingleObject: 이벤트를 기다립니다.
• SetEvent: 이벤트에 신호를 줍니다.