18.5. asyncio — 异步 I/O、事件循环、协程和任务 — Python 文档

来自菜鸟教程
Python/docs/3.6/library/asyncio
跳转至:导航、​搜索

18.5. 异步 — 异步 I/O、事件循环、协程和任务

3.4 版中的新功能。


源代码: :source:`Lib/asyncio/`



该模块提供了使用协程编写单线程并发代码、通过套接字和其他资源多路复用 I/O 访问、运行网络客户端和服务器以及其他相关原语的基础设施。 以下是更详细的包装内容列表:

  • 具有各种系统特定实现的可插拔 事件循环
  • transportprotocol 抽象(类似于 Twisted);
  • 对 TCP、UDP、SSL、子进程管道、延迟调用等的具体支持(有些可能取决于系统);
  • Future 类模仿 concurrent.futures 模块中的类,但适用于事件循环;
  • 基于 yield from (PEP 380) 的协程和任务,帮助以顺序方式编写并发代码;
  • 取消支持 Future 和协程;
  • 同步原语 用于在单个线程中的协程之间使用,模仿 threading 模块中的那些;
  • 一个用于将工作传递给线程池的接口,当您绝对必须使用一个可以进行阻塞 I/O 调用的库时。

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

目录:


也可以看看

asyncio 模块是在 PEP 3156 中设计的。 有关传输和协议的励志入门,请参阅 PEP 3153