2013-08-22 2 views
2

pthread_cond_signal은 정확히 하나의 스레드를 차단 해제합니까? 그렇지 않다면 두 개 이상의 스레드를 릴리스하는 경우는 무엇입니까? 다음과 같은 사양을 말한다 :pthread_cond_signal()은 정확히 하나의 스레드를 해제합니까?

가 pthread_cond_signal() 함수 ( 경우 모든 스레드가 차단되는 COND) 지정된 조건 변수 COND 차단되는 스레드 중 적어도 하나를 차단한다.

답변

3

pthreads 사양은 구현에서 "가짜 웨이크 업"을 허용합니다. 예를 들어, 단지이 조건을 허용하는 pthread_cond_signalpthread_cond_waitsketched in the specification의 가설 구현을 참조하십시오.

위조 된 웨이크 업의 가능성은 항상 일부 조건자를 조건과 연관시키고 웨이크 업시 조건자를 검사하는 이유입니다.

관련 문제