当前位置: 技术问答>linux和unix
pthread 的问题
来源: 互联网 发布时间:2017-04-03
本文导语: void WaitEvent() { pthread_cond_wait(&st_csCondWait,&st_csMutex); pthread_mutex_lock(&st_csMutex); } void ActiveEvent() { pthread_cond_signal(&st_csCondWait);...
void WaitEvent()
{
pthread_cond_wait(&st_csCondWait,&st_csMutex);
pthread_mutex_lock(&st_csMutex);
}
void ActiveEvent()
{
pthread_cond_signal(&st_csCondWait);
pthread_mutex_unlock(&st_csMutex);
}
我封装了下,有时候无法激活 多线程的时候会死锁,是不是不能这样用?
|
...当然不能这样用啊...
pthread_cond_wait的时候会释放锁,当这个函数返回的时候回重新加锁.
void WaitEvent()
{
pthread_mutex_lock(&st_csMutex);
pthread_cond_wait(&st_csCondWait,&st_csMutex);
pthread_mutex_unlock(&st_csMutex);
}
void ActiveEvent()
{
pthread_cond_signal(&st_csCondWait);
}
pthread_cond_wait的时候会释放锁,当这个函数返回的时候回重新加锁.