pthread 的有关问题

pthread 的问题void WaitEvent(){pthread_cond_wait(&st_csCondWait,&st_csMutex)pthread_mutex_lock(&st

pthread 的问题



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);
        }



我封装了下,有时候无法激活 多线程的时候会死锁,是不是不能这样用?
[解决办法]
...当然不能这样用啊...

       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的时候会释放锁,当这个函数返回的时候回重新加锁.