日期:2014-05-16  浏览次数:20812 次

pthread_cond_signal和pthread_cond_wait两个函数是怎么意思?
pthread_cond_signal
pthread_cond_wait

pthread_mutex_lock
pthread_mutex_unlock
这几个函数是什么意思?怎么用,希望回答详细点,我是小白

------解决方案--------------------
条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。

//thread1
pthread_mutex_lock(&mutex);

...//临界资源
...
pthread_cond_signal(&cond);//激活信号,激活一个等待该条件的线程
...

pthread_mutex_unlock(&mutex);


//thread2
pthread_mutex_lock(&mutex);

...//临界资源
...
pthread_cond_wait(&cond, &mutex);//等待条件变量通知
...

pthread_mutex_unlock(&mutex);