Event: 是線程同步的一種方式,相似於一個標誌,當該標誌爲false時,全部等待該標誌的線程阻塞,當爲true時,全部等待該標誌的線程被喚醒spa
isSet(): 當內置標誌爲True時返回True。
set(): 將標誌設爲True,並通知全部處於等待阻塞狀態的線程恢復運行狀態。
clear(): 將標誌設爲False。
wait([timeout]): 若是標誌爲True將當即返回,不然阻塞線程至等待阻塞狀態,等待其餘線程調用set()線程
1 import threading 2 import time 3 4 event = threading.Event() 5 6 def func(): 7 print "%s is waiting for event...\n" % threading.currentThread().getName() 8 event.wait() 9 10 print "%s get the Event..\n" % threading.currentThread().getName() 11 12 13 if __name__ == "__main__": 14 t1 = threading.Thread(target=func) 15 t2 = threading.Thread(target=func) 16 17 t1.start() 18 t2.start() 19 20 time.sleep(2) 21 22 print "MainThread set Event\n" 23 24 event.set() 25 26 t1.join() 27 t2.join()