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