标签

asyncio

Python 2019-06-09

深入理解Python中的asyncio

asyncio介绍

熟悉c#的同学可能知道,在c#中可以很方便的使用asyncawait来实现异步编程,那么在python中应该怎么做呢,其实python也支持异步编程,一般使用asyncio这个库,下面介绍下什么是asyncio:

asyncio 是用来编写 并发 代码的库,使用async/await语法。 asyncio 被用作多个提供高性能Python异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。 asyncio 往往是构建 IO 密集型和高层级 结构化 网络代码的最佳选择。

asyncio中的基本概念

可以看见,使用asyncio库我们也可以在python代码中使用asyncawait。在asyncio中,有四个基本概念,分别是:

Eventloop

Eventloop可以说是asyncio应用的核心,中央总控,Eventloop实例提供了注册、取消、执行任务和回调 的方法。 简单来说,就是我们可以把一些异步函数注册到这个事件循环上,事件循环回循环执行这些函数(每次只能执行一个),如果当前正在执行的函数在等待I/O返回,那么事件循环就会暂停它的执行去执行其他函数。当某个函数完成I/O后会恢复,等到下次循环到它的时候就会继续执行。

Coroutine

协程本质就是一个函数,

import asyncio
import time

asyn...
发现更多