python-event事件-模仿红绿灯
import time import threading event =threading.Event() def lighter(): count=0 event.set()#先设置成绿灯 while True: if count >5 and count<10: #改成红灯 event.clear()#清空标志位 print("\033[41;1mred light is on....%s\033[0m"%count) elif count >10: event.set()#变绿灯 count=0 else: print("\033[44;1mgreen light is on....%s\033[0m"%count) time.sleep(1) count +=1 def car(name): while True: if event.is_set():#设置了标志位代表绿灯 time.sleep(1) print("[%s] running..."%name) else: print("[%s] sees red light,waiting...."%name) event.wait() print("\033[34;1m[%s] green light is on,start going...[1m" % name) light=threading.Thread(target=lighter,) light.start() car1=threading.Thread(target=car,args=("Tesla",)) car1.start()