python 程序訊號量

2022-04-02 05:07:53 字數 1350 閱讀 4310

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...