18.5. asyncio — 异步 I/O、事件循环、协程和任务 — Python 文档
来自菜鸟教程
Python/docs/3.6/library/asyncio
18.5. 异步 — 异步 I/O、事件循环、协程和任务
3.4 版中的新功能。
该模块提供了使用协程编写单线程并发代码、通过套接字和其他资源多路复用 I/O 访问、运行网络客户端和服务器以及其他相关原语的基础设施。 以下是更详细的包装内容列表:
- 具有各种系统特定实现的可插拔 事件循环 ;
- transport 和 protocol 抽象(类似于 Twisted);
- 对 TCP、UDP、SSL、子进程管道、延迟调用等的具体支持(有些可能取决于系统);
- Future 类模仿 concurrent.futures 模块中的类,但适用于事件循环;
- 基于
yield from
(PEP 380) 的协程和任务,帮助以顺序方式编写并发代码; - 取消支持 Future 和协程;
- 同步原语 用于在单个线程中的协程之间使用,模仿 threading 模块中的那些;
- 一个用于将工作传递给线程池的接口,当您绝对必须使用一个可以进行阻塞 I/O 调用的库时。
异步编程比经典的“顺序”编程更复杂:请参阅 使用 asyncio 开发页面,其中列出了常见陷阱并解释了如何避免它们。 在开发过程中启用调试模式以检测常见问题。
目录:
- 18.5.1. 基本事件循环
- 18.5.2. 事件循环
- 18.5.3. 任务和协程
- 18.5.4. 传输和协议(基于回调的 API)
- 18.5.5. Streams(基于协程的 API)
- 18.5.6. 子进程
- 18.5.7. 同步原语
- 18.5.8. 队列
- 18.5.9. 使用 asyncio 进行开发