6. python多進(jìn)程信號(hào)量-Semaphore

一、簡(jiǎn)述

信號(hào)量Semaphore是一個(gè)計(jì)數(shù)器澳厢,控制對(duì)公共資源或者臨界區(qū)域的訪問(wèn)量环础,信號(hào)量可以指定同時(shí)訪問(wèn)資源或者進(jìn)入臨界區(qū)域的進(jìn)程數(shù)。每次有一個(gè)進(jìn)程獲得信號(hào)量時(shí)剩拢,計(jì)數(shù)器-1线得,若計(jì)數(shù)器為0時(shí),其他進(jìn)程就停止訪問(wèn)信號(hào)量徐伐,一直阻塞直到其他進(jìn)程釋放信號(hào)量贯钩。


二、常用方法和屬性

  • acquire(blocking = True, timeout=None)
    • 請(qǐng)求一個(gè)信號(hào)量
  • release()
    • 釋放一個(gè)信號(hào)量

三办素、示例

import time, random
from multiprocessing import Process, Semaphore

def ktv(i, sem):
    sem.acquire()
    print('%s 走進(jìn)ktv' %i)
    time.sleep(random.randint(1, 5))
    print('%s 走出ktv' %i)
    sem.release()

if __name__ == "__main__":
    sem = Semaphore(4)
    for i in range(5):
        p = Process(target=ktv, args=(i, sem))
        p.start()

運(yùn)行結(jié)果

0 走進(jìn)ktv
3 走進(jìn)ktv
4 走進(jìn)ktv
1 走進(jìn)ktv
1 走出ktv
2 走進(jìn)ktv
2 走出ktv
0 走出ktv
3 走出ktv
4 走出ktv

Process finished with exit code 0

示例說(shuō)明:

  • Semaphore 主要用于控制對(duì)公共資源或者臨界區(qū)域訪問(wèn)量的場(chǎng)景角雷。
  • 這個(gè)示例中ktv有4個(gè)包間,來(lái)了5個(gè)人性穿。這時(shí)候就使用Semaphore來(lái)控制訪問(wèn)量了勺三。只能同時(shí)允許4個(gè)人進(jìn)入包間,第5個(gè)人只有等先進(jìn)入的4個(gè)人中有人出來(lái)時(shí)才可以進(jìn)入季二。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末檩咱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子胯舷,更是在濱河造成了極大的恐慌刻蚯,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桑嘶,死亡現(xiàn)場(chǎng)離奇詭異炊汹,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)逃顶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門讨便,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)充甚,“玉大人,你說(shuō)我怎么就攤上這事霸褒“檎遥” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵废菱,是天一觀的道長(zhǎng)技矮。 經(jīng)常有香客問(wèn)我,道長(zhǎng)殊轴,這世上最難降的妖魔是什么衰倦? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮旁理,結(jié)果婚禮上樊零,老公的妹妹穿的比我還像新娘。我一直安慰自己孽文,他們只是感情好驻襟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著叛溢,像睡著了一般塑悼。 火紅的嫁衣襯著肌膚如雪劲适。 梳的紋絲不亂的頭發(fā)上楷掉,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音霞势,去河邊找鬼烹植。 笑死,一個(gè)胖子當(dāng)著我的面吹牛愕贡,可吹牛的內(nèi)容都是我干的草雕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼固以,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼墩虹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起憨琳,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤诫钓,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后篙螟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菌湃,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年遍略,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了惧所。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骤坐。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖下愈,靈堂內(nèi)的尸體忽然破棺而出纽绍,到底是詐尸還是另有隱情,我是刑警寧澤势似,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布顶岸,位于F島的核電站,受9級(jí)特大地震影響叫编,放射性物質(zhì)發(fā)生泄漏辖佣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一搓逾、第九天 我趴在偏房一處隱蔽的房頂上張望卷谈。 院中可真熱鬧,春花似錦霞篡、人聲如沸世蔗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)污淋。三九已至,卻和暖如春余掖,著一層夾襖步出監(jiān)牢的瞬間寸爆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工盐欺, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赁豆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓冗美,卻偏偏與公主長(zhǎng)得像魔种,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粉洼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355