from threading import Event
python
线程间状态同步:即将一个任务丢到子进程中,这个任务将异步执行,如何获取到这个任务的执行状态服务器
注意:执行状态和执行结果不是同一个概念,异步回调拿到的是任务的执行结果异步
假设函数
一个线程 负责启动服务器 启动服务器须要花必定的时间操作系统
另外一个线程做为客户端 要链接服务器 必须保证服务器已经启动线程
要获取状态能够采永轮询(循环轮训)的方法 可是浪费了CPU资源 并且可能会形成延迟 不能当即获取状态code
就能够使用事件来完成状态同步server
事件本质就是 一个标志 能够是False 或是True 对象
特殊之处在于 其包含一个wait函数 能够阻塞当前线程 直到状态从False变为True进程
from threading import Thread,Event import time e = Event() #默认值为false #启动服务器任务 def start_server(): print('starting server....') #模拟启动服务器的延迟 time.sleep(3) print('server started....') #将event事件的初始状态由false转为true e.set() #链接服务器任务 def connect_server(): e.wait() #等待start事件的任务状态从false变为true if e.is_set(): print('服务器链接成功') #建立线程对象 t1 = Thread(target=start_server) t2 = Thread(target=connect_server) #启动线程 t1.start() t2.start()