Hasty Briefsbeta

双语

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标准异步库,提供事件循环和协程管理工具