目录

Python asyncio 的事件循环机制

Python asyncio 的事件循环机制

在使用 Python 的 asyncio 库实现异步编程的过程中,协程与事件循环这两个概念可以说有着千丝万缕的联系,常常是形影不离的出现,如胶似漆般的存在。

Python 的 EventLoop 是一个抽象类,它定义了事件循环的基本方法,如创建、运行、停止、注册回调函数等等。除了Python 自带的 asyncio 库,还有其他第三方库,它们都实现了 EventLoop 的功能,如:

  • uvloop: uvloop is a fast, drop-in replacement of the built-in asyncio event loop. uvloop is implemented in Cython and uses libuv under the hood.
  • trio: a friendly Python library for async concurrency and I/O

其中 vuloop 是一个基于 libuv 的事件循环,它比 Python 内置的 asyncio 库更快,因此 被web框架sanic 使用。 sanic 速度非常快,号称是最快的 Python Web 框架之一。

相关内容