概述
Python 的 asyncio
库提供了一种基于事件循环的异步编程模型,其核心是无栈协程(Stackless Coroutine)。无栈协程具有以下特性:
- 单线程事件循环:
asyncio
在单线程上创建一个事件循环,用于调度协程的执行。 - 协作式多任务:协程只有在主动交出控制权(如通过
await
)时,事件循环才能调度其他协程。 - 异步等待:使用
await
调用可调度的对象(如协程、Future
、Task
),并获取其结果。
事件循环
事件循环是 asyncio
的核心组件,负责管理和调度所有异步任务。其工作原理如下: