더북(TheBook)

1.13 이벤트

 

 

멀티스레드 프로그래밍을 위한 도구로 임계 영역과 뮤텍스만 있는 것은 아닙니다. 이번에는 이벤트를 알아봅시다.

이벤트는 쉽게 말해서 잠자는 스레드를 깨우는 도구로, 내부적으로 다음 상태 값을 가집니다.

Reset: 이벤트가 없음이라는 의미입니다. 정수 값으로 표현하자면 0입니다.

Set: 이벤트가 있음이라는 의미입니다. 정수 값으로 표현하자면 1입니다.

Event event1;
 
void Thread1()
{
  // 이벤트가 신호를 일으킬 때까지 기다린다.
  event1.Wait();
}
 
void Thread2()
{
  // 이벤트에 신호를 준다.
  event1.SetEvent();
}

윈도에서는 다음 이벤트 관련 함수가 있습니다.

CreateEvent: 이벤트를 생성합니다.

CloseHandle: 이벤트를 파괴합니다.

WaitForSingleObject: 이벤트를 기다립니다.

SetEvent: 이벤트에 신호를 줍니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.