Python 高级编程之并发与异步
所属:阶段一 · 前置核心基础 目标:理解多线程 / 多进程 / 协程三种并发模型,能为 IO 密集 vs CPU 密集任务选对工具。
📌 学习目的
理解多线程 / 多进程 / 协程三种并发模型,能为 IO 密集 vs CPU 密集任务选对工具。
✅ 学习要求(前置条件)
已完成「01_python_advanced_basics」与「02_python_advanced_syntax」。
📚 主要学习内容
- GIL 的影响与绕过(多进程 vs C 扩展)
threading线程池 /concurrent.futuresmultiprocessing进程池与共享状态asyncio:事件循环 /async/await/ Task / gather- 异步上下文与同步代码互操作:
asyncio.to_thread/run_in_executor
📖 对应 docs
- 目录:
docs/01-阶段一-前置核心基础/(按目录名里的第 X 篇对应) - 在 docs 目录里找到对应的小点 markdown 文件阅读详细理论。
🛠️ 建议练习
- 用线程池并发抓取 10 个 URL 的标题并计时
- 用
asyncio.gather并发调用 5 个模拟 LLM 接口 - 对比多线程 / 多进程 / 协程在 IO 密集任务上的耗时差异
🏁 完成后达成标准
- 能说清 IO 密集用 asyncio,CPU 密集用 multiprocessing
- 能写正确的
async/await代码并处理并发异常 - 能将同步阻塞调用丢进线程池不阻塞事件循环
🚀 运行提示
# 激活根目录的虚拟环境
cd /Users/jack/source/Demo/py/demo_python_agent
source .venv/bin/activate # 或直接用 uv run ...
# 进入本章目录
cd code/001_phase1_foundations/03_python_concurrency_async
# 跑你的练习文件
uv run python your_exercise.py