condition variable & semaphore

bohemian의 이미지

<pthread.h> 를 한정적으로,
semaphore, condition variable (pthread_cond_xxx())
간의 차이점이 명확하게 이해할 수 없어서 질문 드립니다.

둘간의 차이점이 무엇인지 설명 부탁드립니다.

alsong의 이미지

Quote:
<pthread.h> 를 한정적으로,
semaphore, condition variable (pthread_cond_xxx())
간의 차이점이 명확하게 이해할 수 없어서 질문 드립니다.

둘간의 차이점이 무엇인지 설명 부탁드립니다.

semaphore(pthread_mutex_xxx()?)
임계영역안에서 상호배제를 작동시키는거구요.

a가 자원을 달라~~~ (그저 외칠뿐입니다.)
b가 자원을 달라~~~

condition varialble은
thread간에 동기화를 위한 것입니다.

a와 b가 c(wait)에게 "필요한 일이 끝났다."라고 알려줌.

하나의 특성의 예로)
mutex는 임계영역에 들어간 thead를 제외한 thread는 블럭될 수 있으나
cond는 c에게 알려만 주고 자기 일을 하게 됩니다.

그나저나 백수 언제 탈출하냐... ㅡㅡ; 배고파라.