asyncio、事件循环、协程、任务... 这些概念总是让人困惑?本文从底层原理出发,用通俗的语言讲清楚 Python 异步的本质。
什么是协程
协程(Coroutine)是一种可以暂停和恢复执行的函数。与普通函数不同,协程在执行过程中可以主动让出控制权,等待某些条件满足后再继续执行。
事件循环
事件循环是 asyncio 的核心。它负责管理和调度所有的协程,决定哪个协程在什么时候执行。可以把事件循环想象成一个任务调度器。
async / await 语法
async def 定义一个协程函数,await 用于等待另一个协程完成。注意,await 只能在 async 函数内部使用。
实际应用
异步编程最适合 I/O 密集型场景:网络请求、数据库操作、文件读写等。对于 CPU 密集型任务,应该使用多进程而不是异步。