python 程序事件

2022-04-02 05:07:52 字數 1174 閱讀 7823

1、作用

通過訊號量,控制全部程序進入阻塞狀態,也可以通過控制訊號量,解除全部程序的阻塞

注意:定義的事件物件,預設狀態是阻塞

2、常用方法

"""

物件.set()

作用:設定乙個事件的狀態為true

物件.clear()

作用:設定乙個事件的狀態為false

物件.is_set()

作用:檢視當前事件的狀態

物件.wait()

根據事件的狀態,判斷是否阻塞

若狀態為true,則不阻塞

若狀態為false,則阻塞

注意:阻塞的是 物件.wait()後面的內容

"""

"""

紅綠燈亮為永真

"""import

time

from multiprocessing import

process

from multiprocessing import

event

defcar(e, car):

ifnot

e.is_set():

print('

%s阻塞

' %car)

e.wait()

print('

%s通過

' %car)

deftraffic_light(e):

while 1:

ife.is_set():

e.clear()

print('

紅燈亮'

)

else

: e.set()

print('

綠燈亮'

) time.sleep(2)

if__name__ == '

__main__':

e =event()

p = process(target=traffic_light, args=(e, ))

p.start()

for i in range(30):

p1 = process(target=car, args=(e, '

car%s

' %i ))

p1.start()

time.sleep(1)

python 多程序程式設計(三) 事件event

事件event是用於堵塞程序執行的乙個用途,可以讓程序之間做到同時堵塞同時進行,類似於一種斷點的效果,常用於一種訊號狀態的傳遞 e event 建立乙個event物件 e.is set 展示當前event的狀態,乙個物件剛被建立是,狀態都為false即阻塞狀態 e.wait wait方法會根據當前的...

python 管道, 事件, 訊號量, 程序池

from multiprocessing import process,pipe def f1 conn 管道的recv 裡面不用寫數字 from main process conn.recv print 我是子程式 print from main process if name main 建立乙個...

python 程序 python程序

python程序池pool 當需要建立的子程序數量不多時,可以直接利用multiprocessing中的process動態生成多個程序,但如果是上百甚至上千個目標,手動的去建立程序的工作量巨大,此時就可以用到multiprocessing模組提供的pool方法。初始化pool是,可以指定乙個最大程序...