欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
pthread條件變量函數的使用
pthread條件變量函數的使用
2007-06-20 17:36

推薦的pthread_cond_wait()和pthread_cond_signal()使用方式:
pthread_mutex_lock(&m);
while( condition_is_false )
        pthread_cond_wait(&cond, &m);
pthread_mutex_unlock(&m);

另一端一般是:
pthread_mutex_lock(&m); // pthread_cond_wait已自動(dòng)釋放鎖
......
pthread_cond_signal(&v);
pthread_mutex_unlock(&m); // 釋放鎖,使得pthread_cond_wait可以自動(dòng)再次獲得鎖

注意調用pthread_cond_wait()之前必須獲得鎖。pthread_cond_wait()其實(shí)對互斥量做了操作,首先,將解鎖與掛起線(xiàn)程做為原子操作執行,這樣pthread_cond_signal()即可獲互斥量。當pthread_cond_wait()返回時(shí),又會(huì )自動(dòng)加鎖,所以其效果相當于持有的鎖的狀態(tài)沒(méi)有改變。

被pthread_cond_wait()阻塞的線(xiàn)程可以被pthread_cond_signal函數,pthread_cond_broadcast函數喚醒,也可能在被信號中斷后被喚醒(造成假喚醒)。pthread_cond_wait()函數的返回并不意味著(zhù)條件的值一定發(fā)生了變化(有可能是假喚醒),也可能是函數出錯返回,因此必須重新檢查條件的值,比如用while()來(lái)確認。pthread_cond_wait()函數返回時(shí),相應的互斥鎖將被當前線(xiàn)程鎖定。

必須在互斥鎖的保護下使用相應的條件變量。否則對條件變量的通知有可能發(fā)生在等待條件變量之前,從而造成死鎖;導致死鎖的最常見(jiàn)錯誤是自死鎖或遞歸死鎖。在自死鎖或遞歸死鎖中,線(xiàn)程嘗試獲取已被其持有的鎖。遞歸死鎖是在編程時(shí)很容易犯的錯誤。另外,如果沒(méi)有線(xiàn)程被阻塞在條件變量上,那么調用pthread_cond_signal()將沒(méi)有作用。

也可以用int pthread_cond_timedwait(),函數到了一定的時(shí)間,即使條件未發(fā)生也會(huì )解除阻塞(返回ETIMEDOUT)。函數返回時(shí),相應的互斥鎖往往是鎖定的,即使是函數出錯返回。

對于pthread_cond_broadcast(),不同的線(xiàn)程可以共用一個(gè)條件變量,但是鎖還是要不同的,因為在wait()之前一定要獲得鎖;如果確認對鎖沒(méi)有造成死鎖的競爭,pthread_cond_broadcast()的方式用一個(gè)鎖也可以。

PS: 條件變量函數并不是異步信號安全的,因此不能在信號處理函數中調用。具體地說(shuō),在信號處理函數中調用 pthread_cond_signal() 或 pthread_cond_broadcast() 可能會(huì )導致調用線(xiàn)程的死鎖。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
互斥量、條件變量與pthread_cond_wait()函數的使用,詳解
pthread_cond_wait().
pthread_cond_wait() 前使用 while 講解
Linux系統下的多線(xiàn)程編程入門(mén)-開(kāi)發(fā)頻道-多線(xiàn)程-天極網(wǎng)
Linux Pthread 深入解析
淺析pthread_cond_wait
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久