久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

pthread_cond_signal()的具體位置,?...

 techres 2010-11-08
pthread_cond_wait必須放在pthread_mutex_lock和pthread_mutex_unlock之間,,因?yàn)樗鶕?jù)共享變 量的狀態(tài)來(lái)覺(jué)得是否要等待,而為了不永遠(yuǎn)等待下去所以必須要在lock/unlock隊(duì)中
共享變量的狀態(tài)改變必須遵守lock/unlock的規(guī)則

pthread_cond_signal即可以放在pthread_mutex_lock和pthread_mutex_unlock之間,,也可以放在 pthread_mutex_lock和pthread_mutex_unlock之后,,但是各有有缺點(diǎn)。

之間:
pthread_mutex_lock
    xxxxxxx
pthread_cond_signal
pthread_mutex_unlock
缺點(diǎn):在某下線程的實(shí)現(xiàn)中,,會(huì)造成等待線程從內(nèi)核中喚醒(由于cond_signal)然后又回到內(nèi)核空間(因?yàn)閏ond_wait返回后會(huì)有原子加鎖的 行為),,所以一來(lái)一回會(huì)有性能的問(wèn)題。但是在LinuxThreads或者NPTL里面,,就不會(huì)有這個(gè)問(wèn)題,,因?yàn)樵贚inux 線程中,有兩個(gè)隊(duì)列,,分別是cond_wait隊(duì)列和mutex_lock隊(duì)列,, cond_signal只是讓線程從cond_wait隊(duì)列移到mutex_lock隊(duì)列,而不用返回到用戶空間,,不會(huì)有性能的損耗,。
所以在Linux中推薦使用這種模式。

之后:
pthread_mutex_lock
    xxxxxxx
pthread_mutex_unlock
pthread_cond_signal
優(yōu)點(diǎn):不會(huì)出現(xiàn)之前說(shuō)的那個(gè)潛在的性能損耗,,因?yàn)樵趕ignal之前就已經(jīng)釋放鎖了
缺點(diǎn):如果unlock和signal之前,,有個(gè)低優(yōu)先級(jí)的線程正在mutex上等待的話,那么這個(gè)低優(yōu)先級(jí)的線程就會(huì)搶占高優(yōu)先級(jí)的線程 (cond_wait的線程),,而這在上面的放中間的模式下是不會(huì)出現(xiàn)的,。

所以,在Linux下最好pthread_cond_signal放中間,,但從編程規(guī)則上說(shuō),,其他兩種都可以

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多