Python 并发:进程、线程、协程,从语言机制到工程选型

这篇文章想解决一个很实际的问题: 很多人学 Python 并发时,会看到三套东西一起出现:multiprocessing、threading、asyncio。 然后马上就会产生几个非常真实的疑问: 既然有进程和线程,为什么还要协程? Python 不是有 GIL 吗,那线程到底还有什么意义? asyncio.Queue、queue.Queue、multiprocessing.Queue 名字这么像,到底差在哪里? 这些概念到底是工程上的真实需求,还是语言设计在“强行造轮子”? 我这篇文章不打算只讲 API,也不打算把协程神化成“更高级方案”。 我会站在 Python 语言本身的角度,把三件事讲清楚: 它们分别是什么 它们分别解决什么问题 它们在真实工程里该怎么选 文中示例代码来自我的示例仓库 minniexcode/Python_review 里的两个脚本: 2026-review/process-thread.py 2026-review/async-io.py 如果你想跟着跑示例,先 clone 这个仓库,然后在仓库根目录执行: 123python 2026-review/process-thread.py processpython 2026-review/process-thread.py threadpython 2026-review/async-io.py

技术