pthread_cond_wait

Posted 2011.05.11 10:24
pthread_cond_wait()은 쓰레드가 휴면상태가 되도록 한다. 휴면상태는 pthread_cond_signal()이라는 함수를 통해  깨울 수 있다. pthread_cond_wait()은 두개의 인자가 들어가는데, 첫번째는 조건변수(conditional variable) 이고 두번째는 잠겨진 mutex이다. 조건변수는 pthread_cond_signal()의 인자로 사용되어 진다.

pthread_cond_wait()가 호출되면 내부적으로 mutex를 잠금 해제하고 쓰레드 실행을 중지시킨다. pthread_cond_wat()의 이러한 내부 작동은 언제나 함께 발생(atomic)한다. 이들 사이에 실행되는 쓰레드는 없다.  또 다른 쓰레드가 pthread_cond_signal()을 호출하면 조건 변수를 기다리고 있었던 쓰레드는 깨어난다. 또 다른 쓰레드가 어떤 pthread_cond_broadcast()를 호출하면 모든 쓰레드는 깨어난다.

pthread_cond_wait()에서 깨어날 때 모든 쓰레드가 시도하는 첫 번째 일은 처음 호출될 때 잠금을 해제했던 mutex를 다시 잠그는 것이다.


신고

'Research > Programming' 카테고리의 다른 글

fflush(stdin)? __fpurge(stdin)!  (0) 2012.02.10
sqlite 파일, 테이블, 쿼리, 업데이트  (0) 2011.05.18
pthread_cond_wait  (0) 2011.05.11
Worker Thread in Qt using Signals & Slots  (0) 2011.04.12
An Introduction to SQLite  (0) 2010.02.01
Qt, undefined reference to `vtable for  (1) 2010.01.26
« PREV : 1 : ··· : 48 : 49 : 50 : 51 : 52 : 53 : 54 : 55 : 56 : ··· : 535 : NEXT »

티스토리 툴바