# Author:jum_
# event 事件监测 红灯停绿灯行 线程标志位
# 事件主要提供了三个方法wait、clear、set
# clear:将“Flag”设置为False
#set:将“Flag”设置为True
# wait:等待设置标志位
import threading,time
event = threading.Event() #实例化一个事件
def lights():
conten = 0 #初始化一个变量
event.set() #设置事件标志位
while True:
if conten >5 and conten<10:
event.clear() #清空标志位
print("红灯")
elif conten >10:
event.set() #设置标志位
conten = 0 #清零
else:
print("绿灯") #事件触发时为绿灯
time.sleep(1)
conten+=1
def Car(name):
while True:
if event.isSet(): #判断设置标志位
print("[%s]runing...."%name)
time.sleep(1)
else:
print("[%s]stop..." % name)
event.wait() #等待标志位设定
lg = threading.Thread(target=lights,)
lg.start()
byd = threading.Thread(target=Car,args=("byd",))
byd.start()