ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Condition variable 호출순서
    개발하면서/etc 2009.10.08 21:16
    지금 threadpool에 대해 공부하고 소스를 분석하고 있다.
    threadpool은 작업을 관리하는 스레드가 있고 작업을 하는 스레드가 있다.
    작업관리 스레드가 wait상태의 작업을하는 스레드에게 signal을 보내서 일을 하게만든다
    이 과정에서 signal과 wait간의 호출순서가 궁금해서 검색을 통해 아래 좋은 사이트를 검색하게 되었다.

    출처 : kldp 질문
    글을 이해하기 쉽게 그림으로 그려보고자 한다.




    signal을 받았다고 바로 작업을 수행하는것이 아니라, 신호 보내는 스레드에서 unlock을 한 후에 작업을 한다
    그리고 cond_wait가 실행 되면 현재 lock되있는 mutex를 unlock하고 return 할때 다시 lock해준다.
    cond_signal을 실행할때 wait된게 없으면 아무작업도 안한다.


    condition variable에 아주 명쾌한 설명 ㅋㅋ
    Joinc Condition Variable설명



    이 글은 저의 이해 및 정리한 것이므로 사실과 다를 수 있습니다.
    틀린점은 지적해주시면 감사하겠습니다.

    댓글 0

Designed by Tistory.