""" 事件 911 刘强东事件 火烧圆明园 事件是一个通知信息, 表示什么时间发生了什么事情 用于线程间通讯 线程间 本来就是数据共享的 也就是说 即使没有事件这个东西 也是没问题的 线程之间,执行流程是完全独立的,一些时候可能需要知道另一个线程发生了什么 然后采取一些行动 这时候就可以使用事件来简化代码 事件其实就是帮你维护了一个bool值 在bool为True之前 wait函数将一直阻塞,这样一来就避免了不断的询问对方的状态 假设 有两条线程 一个用于开启服务器 一个用于连接服务器 连接服务器一定要保证 服务器已经启动成功了,服务器启动需要花费一些时间, """ import time,random from threading import Thread,Event # 使用事件 # 一个事件 boot = Event() def boot_server(): print("正在启动服务器.......") time.sleep(random.randint(2,5)) print("服务器启动成功.......") boot.set() def connect_server(): print("开始尝试连接.....") boot.wait() # 是一个阻塞函数 会一直等到set()函数被调用 print("连接服务器成功!") t1 = Thread(target=boot_server) t1.start() t2 = Thread(target=connect_server) t2.start() # 不使用事件 # 默认未启动 # is_boot = False # # def boot_server(): # global is_boot # print("正在启动服务器.......") # time.sleep(random.randint(2,5)) # print("服务器启动成功.......") # # 修改状态为True # is_boot = True # # # def connect_server(): # while True: # if is_boot: # print("连接服务器成功!") # break # else: # print("连接失败 服务器未启动....") # time.sleep(1) # # t1 = Thread(target=boot_server) # t1.start() # # t2 = Thread(target=connect_server) # t2.start() #