import time,threading
event = threading.Event()
def lighter():
count =0
event.set()#先设置红绿灯,设置一个全局变量标志位
while True:
if count >5 and count<10:#改成红灯
event.clear()#把标志位清理,设置是TRUE,清空是false
print("\033[41;1mred light is on ...\033[0m")
elif count>10:
event.set()#变绿灯
count = 0
else:
print("\033[42;1mgreen light is on ...\033[0m")
time.sleep(1)
count +=1
def car(name):
while True:
if event.is_set():#代表绿灯
print("[%s] running ..."%name)
time.sleep(1)
else:
print("[%s] sees red light,waiting..."%name)
event.wait()#去检测,标志位没有设置,卡在这
print("\033[34;1m[%s] green light is on ,start going ...\033[0m"%name)
light = threading.Thread(target=lighter,)
light.start()
car1 = threading.Thread(target=car,args=('BMW',))
car1.start()