python之Event事件標誌
阿新 • • 發佈:2018-11-10
Event:
Event就是一個線上程裡的標誌,隨時可以切換
event = threading.Event()
設定標誌位:event.set()
清除標誌:event.clear()
判斷是否設定標誌位:event.is_set()
等待被設定:event.wait()
模擬紅綠燈來使用一下event:
標誌位設定了,代表綠燈,直接通行。
標誌位被清空,代表紅燈,wait等待變綠燈
'''紅綠燈''' import threading,time #event就是一個線上程裡的標誌,隨時可以切換 event = threading.Event() def Lighter(): count=0 event.set() while True: if count > 3 and count <= 6: #30-60秒為紅燈 event.clear() #清除,變成紅燈 print("\033[41;1m紅燈亮\033[0m") elif count > 6: event.set() #變成綠燈 count = 0 #重置計時器 else: print("\033[42;1m綠燈亮\033[0m") time.sleep(1); count += 1 def Car(name): while True: if event.is_set(): print(name,'開車') time.sleep(1) else: print(name,'停車') time.sleep(1) light = threading.Thread(target=Lighter,) light.start() car = threading.Thread(target=Car,args=('寶馬',)) car.start()