读书人

pthread_cond_wait()的困惑

发布时间: 2013-09-13 21:12:00 作者: rapoo

pthread_cond_wait()的疑惑?

最近有工作需要,要写个多线程,实现同步,但是看了很多网络的释义不是很理解,觉得解释不通:

如下:

pthread_mutex_t mutex;

pthread_cond_t cond;


void *thread_A(void *prm)

{

pthread_mutex_lock(&mutex); //lock (1) 第一步

pthread_cond_wait(&cond); //第二步阻塞 block-->unlock(0)-->wait() 第五步return-->lock(2??)!!这里第三步已经做过加锁了,还可以加锁?

pthread_mutex_unlock(&mutex) // 第六步 unlock


// process something...

....

}


void * thread_B(void *prm)

{

pthread_mutex_lock(&mutex); //lock(1) 第三步

pthread_cond_signal(&cond); // 第四步 signal trigger pthread_cond_wait to exit wait()

pthread_mutex_unlock(&mutex)//第七步unlock

}


从第一步至第五步,第五步做了什么?

读书人网 >网络基础

热点推荐