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("33[41;1mred light is on....%s33[0m"%count)
        elif count >10:
            event.set()#变绿灯
            count=0
        else:
            print("33[44;1mgreen light is on....%s33[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("33[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()
原文地址:https://www.cnblogs.com/fuyuteng/p/9208685.html