Python Library这一计算机语言在实际应用中特别的广泛,而很少的人会涉及Python Library中的Event具体实际操作方案的具体应用,以下的文章就是对其在实际操作中的相关步骤的详细介绍。
这个和 .NET ManualResetEvent 相对应,用于在多个线程间进行协同操作。Event.wait() 等待事件信号以便继续执行,set() 设置信号使等待的线程得以执行,clear() 清除信号。
- event1 = Event()
- event2 = Event()
- def test1():
- for i in range(5):
- event1.wait()
等待信号
- print currentThread().name, i
- event1.clear()
执行完成后,清除标记(flag),使得下次 wait() 时需再次等待通知。
- event2.set()
设置另外一个等待事件,以便给另外一个线程发送信号。
- 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具体实际操作方案的介绍。