简短介绍
asyncio是遵循Python标准库的一个异步 I/O框架.在这篇文章里,我将介绍 uvloop: 可以完整替代asyncio事件循环.uvloop是用Cython写的,基于 libuv.
uvloop 使得 asyncio 更快. 实际上,比nodejs,gevent,以及其他任何Python异步框架至少快两倍 .uvloop asyncio 基于性能的测试接近于Go程序.
asyncio 和 uvloop
asyncio 模块, 是在 PEP 3156引入的, 是一个集合,包含网络传输, 协议, 和抽象的流, 带有可插拔的事件循环. 事件循环是asyncio的核心.它提供如下API:
第 1 段(可获 1.41 积分)
调用方法的调度
通过网络传输数据
执行 DNS 查询,
处理 OS 操作系统信号
对创建服务器和连接进行封装
子进程异步处理
目前 uvloop 只支持 *nix 平台和 Python 3.5。
uvloop 是 Python 内建的 asyncio 事件循环的替代品,你可以通过 pip 来安装:
$ pip install uvloop
在你的 asyncio 代码中使用 uvloop 非常简单:
import asyncio
import uvloop
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
上面的代码片段让 asyncio.get_event_loop() 返回一个 uvloop 的实例。
第 2 段(可获 0.96 积分)
你还可以显式的