三個需要掌握的同步工具之Semaphore(信號量)

1. 信號量Semaphore的介紹我們以一個停車場運作為例來說明信號量的作用珠移。假設(shè)停車場只有三個車位,一開始三個車位都是空的。這時如果同時來了三輛車,看門人允許其中它們進入進入合敦,然后放下車攔。以后來的車必須在入口等待验游,直到停車場中有車輛離開充岛。這時保檐,如果有一輛車離開停車場,看門人得知后崔梗,打開車攔夜只,放入一輛,如果又離開一輛蒜魄,則又可以放入一輛扔亥,如此往復(fù)。?在這個停車場系統(tǒng)中权悟,車位是公共資源,每輛車好比一個線程推盛,看門人起的就是信號量的作用峦阁。信號量是一個非負整數(shù),表示了當(dāng)前公共資源的可用數(shù)目(在上面的例子中可以用空閑的停車位類比信號量)耘成,當(dāng)一個線程要使用公共資源時(在上面的例子中可以用車輛類比線程)榔昔,首先要查看信號量,如果信號量的值大于1瘪菌,則將其減1撒会,然后去占有公共資源。如果信號量的值為0师妙,則線程會將自己阻塞诵肛,直到有其它線程釋放公共資源。?在信號量上我們定義兩種操作: acquire(獲饶ā) 和 release(釋放)怔檩。當(dāng)一個線程調(diào)用acquire操作時,它要么通過成功獲取信號量(信號量減1)蓄诽,要么一直等下去薛训,直到有線程釋放信號量,或超時仑氛。release(釋放)實際上會將信號量的值加1乙埃,然后喚醒等待的線程。信號量主要用于兩個目的锯岖,一個是用于多個共享資源的互斥使用介袜,另一個用于并發(fā)線程數(shù)的控制。?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末出吹,一起剝皮案震驚了整個濱河市米酬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌趋箩,老刑警劉巖赃额,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件加派,死亡現(xiàn)場離奇詭異,居然都是意外死亡跳芳,警方通過查閱死者的電腦和手機芍锦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來飞盆,“玉大人娄琉,你說我怎么就攤上這事∠判” “怎么了孽水?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長城看。 經(jīng)常有香客問我女气,道長,這世上最難降的妖魔是什么测柠? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任炼鞠,我火速辦了婚禮,結(jié)果婚禮上轰胁,老公的妹妹穿的比我還像新娘谒主。我一直安慰自己,他們只是感情好赃阀,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布霎肯。 她就那樣靜靜地躺著,像睡著了一般榛斯。 火紅的嫁衣襯著肌膚如雪姿现。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天肖抱,我揣著相機與錄音备典,去河邊找鬼。 笑死意述,一個胖子當(dāng)著我的面吹牛提佣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播荤崇,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拌屏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了术荤?” 一聲冷哼從身側(cè)響起倚喂,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后端圈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體焦读,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年舱权,在試婚紗的時候發(fā)現(xiàn)自己被綠了矗晃。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡宴倍,死狀恐怖张症,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鸵贬,我是刑警寧澤俗他,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站阔逼,受9級特大地震影響兆衅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜颜价,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一涯保、第九天 我趴在偏房一處隱蔽的房頂上張望诉濒。 院中可真熱鬧周伦,春花似錦、人聲如沸未荒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽片排。三九已至寨腔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間率寡,已是汗流浹背迫卢。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冶共,地道東北人乾蛤。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像捅僵,于是被迫代替她去往敵國和親家卖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

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

  • 本文為轉(zhuǎn)載資料庙楚,原文地址: http://www.reibang.com/p/02821f9d7777 一上荡、信號量...
    一曰就是一天閱讀 1,135評論 0 3
  • 信號量這個概念不太好理解 舉個??解釋: 以一個停車場是運作為例。為了簡單起見馒闷,假設(shè)停車場只有三個車位酪捡,一開始三個車...
    Chinesszz閱讀 185評論 0 1
  • 信號量(Semaphore)叁征,有時被稱為信號燈,是在多線程環(huán)境下使用的一種設(shè)施沛善,是可以用來保證兩個或多個關(guān)鍵代碼段...
    __Simon__閱讀 84評論 0 0
  • 下篇預(yù)告:Parse的網(wǎng)絡(luò)緩存與離線存儲航揉,敬請 star 持續(xù)關(guān)注 Parse源碼淺析系列(一)---Parse的...
    iOS程序犭袁閱讀 5,797評論 11 94
  • 在日常開發(fā)過程中,為了提升程序運行效率金刁,以及用戶體驗帅涂,我們經(jīng)常使用多線程。在使用多線程的過程中尤蛮,難免會遇到資源競爭...
    xiao333ma閱讀 1,936評論 1 2