线程事件--day36
"""
----线程事件----
是用于协调多个线程工作的,当一个线程要执行某个操作,需要获取另一个线程的状态
你要给别人打电话 必须明确知道对方手机买好了
作为客户端 要连接服务器 必须明确服务器已经启动了,那么作为启动服务器的一方 如何告知客户端?
就通过事件
"""
import time from threading import Thread from threading import Event # 用Event创建一个事件 e = Event() # 默认False def start(): print("正在启动服务器......") time.sleep(5) print("服务器启动成功!") e.set() # 就是把事件的值设置为True def connect(): # 重试3次 for i in range(3): print("等待服务器启动....") # 设置等待时间 e.wait(2) # 会阻塞 直到对方把事件设置为True # 判断Event 是否可以执行 if e.isSet(): print("连接成功!") break else: print("连接失败") else: # 如果3次都没成功 就打印这个消息 print("服务器没有启动") Thread(target=start).start() Thread(target=connect).start()