在Python Library中Event具体实际操作方案


Python Library这一计算机语言在实际应用中特别的广泛,而很少的人会涉及Python Library中的Event具体实际操作方案的具体应用,以下的文章就是对其在实际操作中的相关步骤的详细介绍。

这个和 .NET ManualResetEvent 相对应,用于在多个线程间进行协同操作。Event.wait() 等待事件信号以便继续执行,set() 设置信号使等待的线程得以执行,clear() 清除信号。

  1. event1 = Event()  
  2. event2 = Event()  
  3. def test1():  
  4. for i in range(5):  
  5. event1.wait()   

等待信号

  1. print currentThread().name, i  
  2. event1.clear()  

执行完成后,清除标记(flag),使得下次 wait() 时需再次等待通知。

  1. event2.set()  

设置另外一个等待事件,以便给另外一个线程发送信号。

  1. def test2():  
  2. for i in range(5):  
  3. event2.wait()  
  4. print currentThread().name, i  
  5. event2.clear()  
  6. event1.set()  
  7. Thread(target = test1).start()  
  8. Thread(target = test2).start()  
  9. event1.set()   

记得先激活一个,否则都在那 "等死" 呢。输出:

  1. $ ./main.py  
  2. Thread-1 0  
  3. Thread-2 0  
  4. Thread-1 1  
  5. Thread-2 1  
  6. Thread-1 2  
  7. Thread-2 2  
  8. Thread-1 3  
  9. Thread-2 3  
  10. Thread-1 4  
  11. Thread-2 4  

以上的文章就是对Python Library中的Event具体实际操作方案的介绍。

评论关闭