Skip to main content

18.5. asyncio —异步I/O,事件循环,协同程序和任务

3.4 新版功能.

源代码: Lib/asyncio/


此模块提供用于使用协同来编写单线程并发代码,多路复用通过套接字和其他资源的I/O访问,运行网络客户端和服务器以及其他相关原语的基础结构。这里有一个更详细的包内容列表:

  • 具有各种系统特定实现的可插拔 事件循环

  • 运输协议 抽象(类似于 扭曲 中的那些);

  • 具体支持TCP,UDP,SSL,子进程管道,延迟调用和其他(一些可能是系统相关的);

  • 模拟 concurrent.futures 模块中的 Future 类,但适于与事件循环一起使用的 Future 类;

  • 协同程序和基于 yield fromPEP 380)的任务,以帮助以顺序方式写入并发代码;

  • 取消对 Future 和协程的支持;

  • 同步原语 用于在单线程中的协同程序之间,模仿 threading 模块中的那些;

  • 一个用于将工作传递到线程池的接口,用于绝对地肯定必须使用阻止I/O调用的库的时间。

异步编程比传统的“顺序”编程更复杂:参见 用asyncio开发 页面,其中列出了常见的陷阱并解释如何避免它们。 启用调试模式 在开发过程中检测常见问题。

目录:

参见

asyncio 模块是在 PEP 3156 设计的。有关运输和协议的激励性引物,请参阅 PEP 3153