异步编程的主要目标是在执行 I/O 操作(如网络请求、文件读写)时,避免线程被“卡住”或“阻塞”。
当一个常规函数发起网络请求时,CPU 只能空闲等待网络返回数据,这段时间线程资源被白白浪费。异步编程允许 CPU 在等待一个任务的 I/O 时,切换去执行其他不依赖该 I/O 结果的任务。这样,单线程也能实现极高的并发效率,尤其适用于 I/O 密集型应用。
这好比一个厨师在等水烧开(I/O等待)的时候,他不会傻站着,而是会去切菜(执行其他任务)。
相关链接:
- Python 中实现这一思想的主要工具是
asyncio→asyncio事件循环是协程的调度器 - 实现异步的基础是“协程” →协程是可暂停和恢复的函数