Files
2026-09-22 15:57:59 +08:00
..
2026-09-22 15:57:59 +08:00

Python 高级编程之并发与异步

所属:阶段一 · 前置核心基础 目标:理解多线程 / 多进程 / 协程三种并发模型,能为 IO 密集 vs CPU 密集任务选对工具。


📌 学习目的

理解多线程 / 多进程 / 协程三种并发模型,能为 IO 密集 vs CPU 密集任务选对工具。

✅ 学习要求(前置条件)

已完成「01_python_advanced_basics」与「02_python_advanced_syntax」。

📚 主要学习内容

  • GIL 的影响与绕过(多进程 vs C 扩展)
  • threading 线程池 / concurrent.futures
  • multiprocessing 进程池与共享状态
  • asyncio:事件循环 / async/await / Task / gather
  • 异步上下文与同步代码互操作:asyncio.to_thread / run_in_executor

📖 对应 docs

🛠️ 建议练习

  • 用线程池并发抓取 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