1.13 이벤트

     

     

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

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

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

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

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

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

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

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

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

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

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