How async/await works in Python
a year ago
- #Python
- #AsyncAwait
- #Concurrency
- Python中的async/await允许程序在等待I/O操作完成时执行其他有用任务
- 理解async/await需要熟悉并发、并行、事件循环和协程等概念
- Python通过生成器、原生协程及yield/yield from语法实现async/await
- 并发使程序能同时处理多个任务,即使这些任务并非物理时间上同时运行
- 基于线程的并发易于实现但扩展性差,因内存消耗较高
- 使用selectors的I/O多路复用能让单线程程序高效处理多个连接
- 生成器可作为协程使用,编写出类似同步代码的并发程序
- yield from语法简化了子生成器调用,使协程编写更直观
- Python 3.5引入的async/await是生成器的语法糖,用于区分协程与普通函数
- asyncio是Python标准异步库,提供事件循环和协程管理工具