import threading
# event是一个简单的时间对象,用来同步线程对象
import time
# 实现两个线程之间的通讯,然后实现一个红绿灯
event = threading.Event()
def lighter():
count = 0
event.set() #设为绿灯
while True:
if count > 5 and count < 10: #改成红灯
event.clear() #把标志位清空 这个时候灯是红的
print('红灯')
elif count > 10:
event.set() #变绿灯
count = 0 #清空时间数
else:
print('绿灯')
time.sleep(1)
count += 1
def car(n):
while True:
if event.is_set(): #查看是否有标志位
print('run car',n)
else:
print('waiting car',n)
event.wait() #等到标志位再次设定才会走
print('green light is on,start going...')
time.sleep(1)
light = threading.Thread(target=lighter,)
light.start()
car1 = threading.Thread(target=car,args=('tesla',))
car2 = threading.Thread(target=car,args=('benchi',))
car1.start()
car2.start()
Python多线程006之Event
最新推荐文章于 2024-07-29 14:37:54 发布