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

2021-10-25 11:44:45 字數 1561 閱讀 4786

事件event是用於堵塞程序執行的乙個用途,可以讓程序之間做到同時堵塞同時進行,類似於一種斷點的效果,常用於一種訊號狀態的傳遞

e = event(

)#建立乙個event物件

e.is_set(

)#展示當前event的狀態,乙個物件剛被建立是,狀態都為false即阻塞狀態

e.wait(

)#wait方法會根據當前的物件狀態來控制程式是否阻塞

e.set()

#將當前的事件狀態改為true

e.clear(

)#將當前的事件狀態改為false

下面我們展示乙個簡單的例子,因為一開始預設建立的事件,為false狀態,因此我們先用set將狀態改為ture,這樣654321字串被列印了出來,隨後使用clear將狀態重新改為false之後,就被堵塞了,因此「123456」無法被列印出來了

from multiprocessing import event

e = event(

)print

(e.is_set())

e.set()

e.wait(

)print

(654321

)e.clear(

)e.wait(

)print

(123456)-

----

----

----

----

----

-false

654321

下面這個例子展示的就是event堵塞的效果,當綠燈亮的時候,就會使得cars方法向下執行,而當紅燈亮的時候就會堵塞程式的執行

from multiprocessing import process,event

import random

from time import sleep

deflights

(e):

while

true

: e.clear(

)print

("紅燈亮,禁止通行"

) sleep(8)

e.set(

)print

("綠燈亮,衝衝衝"

) sleep(8)

defcars

(i,e)

:if e.is_set:

print

("car%i在等待"

%i) e.wait(

) e.wait(

)print

("car%i通過了"

%i)if __name__ ==

'__main__'

: e = event(

) p = process(target=lights,args=

(e,)

) p.start(

) car = process(target=cars,args=

(i,e)

) car.start(

)

python多程序 Python多程序程式設計詳解

本文 在 python 3.6 環境下測試通過。多程序 multiprocessing 模組是在 python 2.6 版本中加入的,和多執行緒 threading 模組類似,都是用來做並行運算的。不過python既然有了threading,為什麼還要搞乙個multiprocessing呢?這是因為...

python 多程序程式設計

多程序指的是乙個程式可以啟動多個程序執行,一般模式如下 import multiprocessing from multiprocessing import process,current process import time cup 核數量 num cpus multiprocessing.cp...

python多程序程式設計

python多程序程式設計。最近開始學習python程式語言,詳細參照 python絕技運用python成為頂級黑客 在學習過程第一章節中,編寫破解linux shadow檔案時,想利用多執行緒加快破解速度。主機執行環境為windows下的vm workstation上的一台虛擬機器,執行多執行緒 ...