在Python Library中Event具體實際操作方案
Python Library這一計算機語言在實際應(yīng)用中特別的廣泛,而很少的人會涉及Python Library中的Event具體實際操作方案的具體應(yīng)用,以下的文章就是對其在實際操作中的相關(guān)步驟的詳細(xì)介紹。
這個和 .NET ManualResetEvent 相對應(yīng),用于在多個線程間進行協(xié)同操作。Event.wait() 等待事件信號以便繼續(xù)執(zhí)行,set() 設(shè)置信號使等待的線程得以執(zhí)行,clear() 清除信號。
- event1 = Event()
- event2 = Event()
- def test1():
- for i in range(5):
- event1.wait()
等待信號
- print currentThread().name, i
- event1.clear()
執(zhí)行完成后,清除標(biāo)記(flag),使得下次 wait() 時需再次等待通知。
- event2.set()
設(shè)置另外一個等待事件,以便給另外一個線程發(fā)送信號。
- def test2():
- for i in range(5):
- event2.wait()
- print currentThread().name, i
- event2.clear()
- event1.set()
- Thread(target = test1).start()
- Thread(target = test2).start()
- event1.set()
記得先激活一個,否則都在那 "等死" 呢。輸出:
- $ ./main.py
- Thread-1 0
- Thread-2 0
- Thread-1 1
- Thread-2 1
- Thread-1 2
- Thread-2 2
- Thread-1 3
- Thread-2 3
- Thread-1 4
- Thread-2 4
以上的文章就是對Python Library中的Event具體實際操作方案的介紹。