linux 条件变量
等待者
pthread_mutex_lock(&m_TheadMutex); while(m_dwActiveThreadCount != m_TotalWorkerTheadCount || m_HasActiveHandles==1) {pthread_cond_wait(&m_OwnerCanGo, &m_TheadMutex); } pthread_mutex_unlock(&m_TheadMutex);//條件變量中的條件二字就體現(xiàn)為"m_dwActiveThreadCount != m_TotalWorkerTheadCount || m_HasActiveHandles==1" //wait內(nèi)部釋放mutex, 等待條件變量被喚醒者激活(signal), 激活后會(huì)重新獲取mutex, 再次while來判斷條件表達(dá)式是否成立比較拗口
?
?
喚醒者
pthread_mutex_lock(&pThis->m_TheadMutex); pthread_cond_signal(&pThis->m_OwnerCanGo); pthread_mutex_unlock(&pThis->m_TheadMutex);
?
?
初始化 與 釋放
pthread_cond_init(&m_OwnerCanGo, NULL); pthread_mutex_init(&m_TheadMutex, NULL);pthread_mutex_destroy(&m_TheadMutex); pthread_cond_destroy(&m_OwnerCanGo);
總結(jié)
以上是生活随笔為你收集整理的linux 条件变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: urllist
- 下一篇: pthread_join