事件event是用於堵塞程序執行的乙個用途,可以讓程序之間做到同時堵塞同時進行,類似於一種斷點的效果,常用於一種訊號狀態的傳遞
下面我們展示乙個簡單的例子,因為一開始預設建立的事件,為false狀態,因此我們先用set將狀態改為ture,這樣654321字串被列印了出來,隨後使用clear將狀態重新改為false之後,就被堵塞了,因此「123456」無法被列印出來了e = event(
)#建立乙個event物件
e.is_set(
)#展示當前event的狀態,乙個物件剛被建立是,狀態都為false即阻塞狀態
e.wait(
)#wait方法會根據當前的物件狀態來控制程式是否阻塞
e.set()
#將當前的事件狀態改為true
e.clear(
)#將當前的事件狀態改為false
下面這個例子展示的就是event堵塞的效果,當綠燈亮的時候,就會使得cars方法向下執行,而當紅燈亮的時候就會堵塞程式的執行from multiprocessing import event
e = event(
(e.is_set())
e.set()
e.wait(
(654321
)e.clear(
)e.wait(
(123456)-
----
----
----
----
----
-false
654321
from multiprocessing import process,event
import random
from time import sleep
deflights
(e):
while
true
: e.clear(
("紅燈亮,禁止通行"
) sleep(8)
e.set(
("綠燈亮,衝衝衝"
) sleep(8)
defcars
(i,e)
:if e.is_set:
("car%i在等待"
%i) e.wait(
) e.wait(
("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上的一台虛擬機器,執行多執行緒 ...