期物的概念:期物指一种对象,表示异步执行的操作。
python3.4起,标准库中有两个名为Future的类
- concurrent.futures.Future
- asyncio.Future
这两个类的作用相同。两个Future类的实例都表示可能已经完成或者尚未完成的延迟计算。
期物封装待完成的操作,可以放入队列,完成的状态可以查询,得到结果(或者抛出异常)后可以获取结果(或异常)。
通常情况下自己不应该创建期物,而只能由并发框架实例化。
这两种期物都要有.done()方法,这个方法不阻塞,返回值是布尔值,指明期物链接的可调用对象是否已经执行。客户端代码通常不会询问期物是否已经运行结束,而是等待通知。因此,两个Future类都有.add_done_callback()方法。这个方法只有一个参数,类型是可调用的对象。当期物运行结束后会调用指定的可调用对象。
还有.result()方法:返回可调用对象的结果
网友评论