Python异步编程asyncio模块

纸上得来终觉浅,绝知此事要躬行。

Python异步编程asyncio模块

1. 引言

官网对asyncio的描述不同于其他标准库模块,只主要罗列了如下四个关键词,即表达这个模块融合了这些技术或包含了这些功能。

Python异步编程asyncio模块
  • 第一个就是**异步I/O**,当代码需要执行一个耗时的操作的时候,它只发出I/O的执行,并不等待I/O的结果,然后就执行其他的代码,这样可以提高效率。
  • 第二个就是事件循环,把基本的I/O操作(如读和写)转化为需要处理的事件,通过事件循环进行事件的监测和事件触发处理工作。
  • 第三个就是协程,我们知道线程是由操作系统切换的,而是用协程可以收回控制权,并且可以将异步编程同步化。注册到事件循环中的事件处理器,就是协程对象,它由事件循环来调用。当程序阻塞等待读或者写操作的时候,做上下文的切换就可以让效率最大化。
  • 第四个就是任务,也就是asyncio模块可以非常容易的并发任务,并且可以实现创建取消的管理功能。