python 中协程概念是从 3.4 版本增加的,但 3.4 版本采用是生成器实现,为了将协程和生成器的使用场景进行区分,使语义更加明确,在 python 3.5 中增加了 async
和 await
关键字,用于定义原生协程。
asyncio 异步 I/O 库
python 中的 asyncio 库提供了管理事件、协程、任务和线程的方法,以及编写并发代码的原语,即 async
和 await
。
该模块的主要内容:
事件循环
:event_loop
,管理所有的事件,是一个无限循环方法,在循环过程中追踪事件发生的顺序将它们放在队列中,空闲时则调用相应的事件处理者来处理这些事件;协程
:coroutine
,子程序的泛化概念,协程可以在执行期间暂停,等待外部的处理(I/O 操作)完成之后,再从暂停的地方继续运行,函数定义式使用async
关键字,这样这个函数就不会立即执行,而是返回一个协程对象;Future
和Task
:Future
对象表示尚未完成的计算,Task
是Future
的子类,包含了任务的各个状态,作用是在运行某个任务的同时可以并发的运行多个任务。