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