python 多程序 Event的使用

2022-05-24 16:03:07 字數 1597 閱讀 3305

event事件  多程序的使用

通俗點兒講  就是

1.  event().wait()    插入在程序中插入乙個標記(flag)  預設為 false  然後flag為false時  程式會停止執行  進入阻塞狀態  

2.  event().set()     使flag為ture  然後程式會停止執行 進入執行狀態  

3.  event().clear()      使flag為false  然後程式會停止執行 進入阻塞狀態  

4.  event().is_set()   判斷flag  是否為true  是的話 返回true  不是 返回false

from multiprocessing import

event,process

import

time

from datetime import

datetime

from psutil import

cpu_count

defwork(e,):

#子程序

while

true:

#print('我是子程序,我先休息!')

e.wait() #

阻塞等待訊號 這裡插入了乙個flag 預設為 false

print('

[s] 這是我的定時任務!

',datetime.now().second)

time.sleep(1)

#訊號:

#某一些使用者鏈結的時候,nginx就會做出相應

#epoll: 訊號|事件

#21點51分

defmain():

e =event()

a =int()

p = process(target=work,name='

子程序',args=(e,))

p.start()

while

true:

if datetime.now().second > 10:

print('

[f] 子程序取消阻塞狀態')

e.set()

#這裡 等秒鐘大於10s 就開啟子程序 工作 使插入的flag為 true 然後繼續執行

break

while

true:

if datetime.now().second > 30:

print('

[f] 子程序結束阻塞狀態')

e.clear()

#這裡 等秒鐘大於30s 就停止子程序工作 使插入的flag為false 就會停止子程序工作

break

time.sleep(5)#

休息5s

e.set()#

繼續使flag 為真 然後執行子程序

print('

[f] 又開啟了')

time.sleep(5)#

休息5s

e.clear()#

繼續使flag 為假 然後停止子程序

print('

[f] 又停止了')

if__name__ == '

__main__':

main()

Python多程序Event 的使用

通俗點兒講就是 event wait 插入在程序中插入乙個標記 flag 預設為 false 然後flag為false時 程式會停止執行 進入阻塞狀態 event set 使flag為ture 然後程式會停止執行 進入執行狀態 event clear 使flag為false 然後程式會停止執行 進入...

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

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

Python 多程序 Event 重複使用喚醒

原作者的意思是要把 event寫到類內部,不能寫乙個全域性變數就了事,這次測試發現,event可以重複使用,重複被喚醒。2019.0516測試ok usr bin env python coding utf 8 import datetime import multiprocessing impor...