經過判斷某個線程的狀態來肯定本身下一步的操做python
若是有線程等待一個Event對象, 而這個Event對象的標誌爲假,那麼這個線程將會被一直阻塞直至該標誌爲真。一個線程若是將一個Event對象的信號標誌設置爲真,它將喚醒全部等待這個Event對象的線程。若是一個線程等待一個已經被設置爲真的Event對象,那麼它將忽略這個事件, 繼續執行操作系統
event.isSet():返回event的狀態值;線程
event.wait():若是 event.isSet()==False將阻塞線程;code
event.set(): 設置event的狀態值爲True,全部阻塞池的線程激活進入就緒狀態, 等待操做系統調度;對象
event.clear():恢復event的狀態值爲False。事件
from threading import Event,Thread import time # 先生成一個event對象 e = Event() def light(): print('紅燈正亮着') time.sleep(3) e.set() # 發信號 print(e.isSet()) # e.clear() # print(e.isSet()) print('綠燈亮了') # print(e.set()) def car(name): print('%s正在等紅燈'%name) e.wait() # 等待信號 # print(e.isSet()) e.clear() print(e.isSet()) print('%s加油門飆車了'%name) t = Thread(target=light) t.start() for i in range(10): t = Thread(target=car,args=('傘兵%s'%i,)) t.start()