pthread中mutex和cond的配合使用

典型的生產(chǎn)者烟具,消費(fèi)者多線程并發(fā)模型中巍佑,cond一般要和mutex配合使用,如下:

1.生產(chǎn)者:
pthread_mutex_lock(&mutex);
//set full
pthread_cond_signal(&cond);???????? //通知消費(fèi)者可以行動(dòng)了
pthread_mutex_unlock(&mutex);

2.消費(fèi)者:
pthread_mutex_lock(&mutex);
while(empty)? pthread_cond_wait(&cond,&mutex);//消費(fèi)者必須等待生產(chǎn)者,為啥要帶鎖等待咽笼?
pthread_mutex_unlock(&mutex);

wait要帶鎖是因?yàn)閣ait內(nèi)部會(huì)首先unlock才開(kāi)始阻塞等待,因?yàn)橹挥衭nlock戚炫,生產(chǎn)者才能
lock并進(jìn)行生產(chǎn)剑刑,繼而喚醒消費(fèi)者,
消費(fèi)者被喚醒后在wait內(nèi)會(huì)重新lock(mutex)

signal喚醒一個(gè)双肤,broadcast喚醒所有消費(fèi)者施掏,最后在持有mutex的情況下調(diào)用,否則有可能signal還未完成茅糜,消費(fèi)者就直接進(jìn)入臨界區(qū)七芭。

因此在wait函數(shù)內(nèi)實(shí)行了unlock和重新lock,但對(duì)外展現(xiàn)的是一直lock的邏輯

wait函數(shù)最后放在while循環(huán)中等待蔑赘,是因?yàn)橛锌赡鼙粍e的消費(fèi)者搶先消費(fèi)了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狸驳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子缩赛,更是在濱河造成了極大的恐慌耙箍,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酥馍,死亡現(xiàn)場(chǎng)離奇詭異辩昆,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)旨袒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門汁针,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)术辐,“玉大人,你說(shuō)我怎么就攤上這事扇丛∈趼穑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵帆精,是天一觀的道長(zhǎng)较屿。 經(jīng)常有香客問(wèn)我,道長(zhǎng)卓练,這世上最難降的妖魔是什么隘蝎? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮襟企,結(jié)果婚禮上嘱么,老公的妹妹穿的比我還像新娘。我一直安慰自己顽悼,他們只是感情好曼振,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蔚龙,像睡著了一般冰评。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上木羹,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天甲雅,我揣著相機(jī)與錄音,去河邊找鬼坑填。 笑死抛人,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的脐瑰。 我是一名探鬼主播妖枚,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼苍在!你這毒婦竟也來(lái)了绝页?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤忌穿,失蹤者是張志新(化名)和其女友劉穎抒寂,沒(méi)想到半個(gè)月后结啼,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體掠剑,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年郊愧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了朴译。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片井佑。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖眠寿,靈堂內(nèi)的尸體忽然破棺而出躬翁,到底是詐尸還是另有隱情,我是刑警寧澤盯拱,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布盒发,位于F島的核電站,受9級(jí)特大地震影響狡逢,放射性物質(zhì)發(fā)生泄漏宁舰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一奢浑、第九天 我趴在偏房一處隱蔽的房頂上張望蛮艰。 院中可真熱鬧,春花似錦雀彼、人聲如沸壤蚜。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)袜刷。三九已至,卻和暖如春实柠,著一層夾襖步出監(jiān)牢的瞬間水泉,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工窒盐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留草则,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓蟹漓,卻偏偏與公主長(zhǎng)得像炕横,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子葡粒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自(https://bestswifter.com/ios-lock/#) 深入理解 iOS 開(kāi)發(fā)中的鎖 摘要 ...
    犯色戒的和尚閱讀 315評(píng)論 0 1
  • Q:為什么出現(xiàn)多線程份殿? A:為了實(shí)現(xiàn)同時(shí)干多件事的需求(并發(fā)),同時(shí)進(jìn)行著下載和頁(yè)面UI刷新嗽交。對(duì)于處理器卿嘲,為每個(gè)線...
    幸福相依閱讀 1,576評(píng)論 0 2
  • iOS線程安全的鎖與性能對(duì)比 一、鎖的基本使用方法 1.1夫壁、@synchronized 這是我們最熟悉的枷鎖方式拾枣,...
    Jacky_Yang閱讀 2,212評(píng)論 0 17
  • 多線程系列文章源碼頭文件內(nèi)容: #include #include #include 作為程序員,就是要減少重復(fù)勞...
    batbattle閱讀 916評(píng)論 0 1
  • 訊飛語(yǔ)音輸入法,把語(yǔ)音轉(zhuǎn)換成文字梅肤,既可以幫我解決快速輸入文字的問(wèn)題司蔬,又可以訓(xùn)練語(yǔ)言規(guī)范性。 適合應(yīng)用在微信文字輸入...
    趙芊閱讀 203評(píng)論 0 0