42 lines
1.6 KiB
Markdown
42 lines
1.6 KiB
Markdown
---
|
|
id: python.asyncio.index
|
|
title: asyncio 异步编程
|
|
type: index
|
|
domain: python
|
|
stack: [asyncio]
|
|
tags: [asyncio, 协程, 并发, 超时]
|
|
week: [4, 5, 12]
|
|
---
|
|
|
|
# asyncio 异步编程
|
|
|
|
AI 应用的大部分时间在“等”:等模型生成、等检索、等数据库。asyncio 让一个进程同时等很多件事。你熟悉 JS 的 `async/await` 和 Promise,概念几乎可以直接迁移;不同点在于 Python **需要显式运行事件循环**、**同步阻塞调用会卡住整个循环**、以及任务取消和超时的写法。
|
|
|
|
## 学习路线
|
|
|
|
| 顺序 | 课程 | 级别 | 预计 |
|
|
| --- | --- | --- | --- |
|
|
| 1 | [协程、任务和事件循环:和 JS Promise 对照](01-coroutines-tasks.md) | 基础 | 2 小时 |
|
|
| 2 | [并发控制:gather / TaskGroup、Semaphore、超时、取消、阻塞调用](02-concurrency-control.md) | 进阶 | 3 小时 |
|
|
|
|
## 企业场景
|
|
|
|
- [并发调用多个模型和外部接口:限并发、超时、重试、部分失败](scenarios/concurrent-llm-calls.md)
|
|
|
|
## 面试题
|
|
|
|
- [asyncio 面试题](interview.md)
|
|
|
|
## 示例代码
|
|
|
|
- [examples/fanout](examples/fanout/):并发上限、单次超时、指数退避重试、部分失败、整体截止时间取消,附 6 个测试,只用标准库
|
|
|
|
## 在 16 周计划中
|
|
|
|
- [第 4 周:Python 速成(asyncio 是重点)](../../../plan/week04-python.md)、[第 5 周:RAG 服务](../../../plan/week05-rag-1.md)、[第 12 周:Agent 持久化](../../../plan/week12-agent-m3-persistence.md)
|
|
|
|
## 官方资料
|
|
|
|
- asyncio 文档(中文):https://docs.python.org/zh-cn/3/library/asyncio.html
|
|
- 协程与任务:https://docs.python.org/zh-cn/3/library/asyncio-task.html
|