1、概念
訊號量和鎖相似,鎖同一時間只允許乙個物件(程序)通過,訊號量同一時間允許多個物件(程序)通過
2、應用場景
多執行緒,並規定數量
3、格式:
匯入訊號量模組
例項化訊號量物件,可以規定訊號量的個數
傳遞物件
拿到一把鑰匙
釋放一把鑰匙
4、過程
獲得鑰匙,當鑰匙串沒鑰匙時,其它程序要在外面等候,當釋放一把鑰匙時,乙個程序進入
"""乙個房間一次只允許兩個人通過
若不使用訊號量,會造成所有人都進入這個房子
若只允許一人通過可以用鎖-lock()
"""import
time
import
random
from multiprocessing import
process
from multiprocessing import
semaphore
defhome(name, se):
se.acquire() #拿到一把鑰匙
print('
%s進入了房間
' %name)
time.sleep(random.randint(1, 5))
print('
******************%s走出來房間
' %name)
se.release() #還回一把鑰匙
if__name__ == '
__main__':
se = semaphore(2) #
建立訊號量的物件,有兩把鑰匙
for i in range(7):
p = process(target=home, args=('
tom{}
'.format(i), se))
p.start()
"""結果:
tom0進入了房間
tom1進入了房間
******************tom0走出來房間
tom2進入了房間
******************tom1走出來房間
tom3進入了房間
******************tom2走出來房間
tom4進入了房間
******************tom3走出來房間
tom5進入了房間
******************tom4走出來房間
tom6進入了房間
******************tom5走出來房間
******************tom6走出來房間
"""
python訊號量 Python訊號量
python訊號量教程 訊號量是由作業系統管理的一種抽象資料型別,用於在多執行緒中同步對共享資源的使用。本質上說,訊號量是乙個內部資料,用於標明當前的共享資源可以有多少併發讀取。也可以簡單的理解為,訊號量是多把鎖,同時允許多個執行緒來更改資料,而 python訊號量與互斥鎖的關係 訊號量的乙個特殊用...
linux 程序 訊號量
1.概述 該demo主要實現linux下程序之間訊號量的使用,相關介面介紹可以參考 2.測試 程序程式設計demo 訊號量 ipc相關的命令 ipcs ipcrm 釋放ipc 檢視程序屬性 ulimit a include include include include include includ...
7 16 程序 訊號量
01.複習內容 子程序裡面不能用 input 明天認真看 天熱有點浮躁 1 usr bin env python2 coding utf 8 3 time 2018 7 16 18 464 author truenewbee56 7 我把之前的專案誤刪了,重新建個專案,8還好以前部分 用sublim...