💻 科技 · 编程语言演进

🔥 去掉 GIL 让 Python 多线程真正跑上多核,这是它三十年并发模型最彻底的一次改写。

一、GIL 到底卡住了什么

很多开发者一直有个误解,觉得 Python 多线程是"假多线程"。根源就在 GIL(全局解释器锁)——它保证同一时刻只有一个线程在执行 Python 字节码。哪怕你在一台 16 核机器上开 16 个线程,虚拟机内部也只是轮流抢锁、串行执行。对 CPU 密集型任务,加线程不仅不提速,反而因线程切换变得更慢。

过去想真正榨干多核,只能绕道走:多进程开销高、C 扩展手动放锁、或换 PyPy 等解释器。如今社区最关心的,正是 Python 4 时代能不能把这道锁彻底拆掉。

二、去掉 GIL 是最大升级吗

从 Python 3.13 的实验性 free-threaded 构建,到 3.14(PEP 779)正式支持,无 GIL 模式已经从一个"概念验证"走向生产可用。早期 3.13 的无 GIL 版单线程性能曾一度慢约 40%,劝退了大批用户;到 3.14 这一开销被压缩到 5%–10%,才真正谈得上可行。

实测里,4 核机器上 CPU 密集任务能拿到接近 4 倍的线性加速,重计算场景甚至冲到 8 倍。但要提醒一句:GIL 只是"可选关闭",并非默认移除,而且 I/O 密集任务本就几乎不受 GIL 影响。

三、真正的门槛在生态与线程安全

截至 2026 年 6 月,PyPI 追踪的 360 个包中只有约 183 个发布了 free-threaded 轮子,勉强过半。NumPy、SciPy、FastAPI 已支持,PyTorch 仍在适配。更隐蔽的风险是:一些代码过去隐含依赖 GIL 保证线程安全,一旦真正并行,共享可变状态就会变成数据竞争,且不抛异常、直接算错。

所以去掉 GIL 确实是 Python 并发史上最大的一次升级,但它带来的不只是性能红利,更是一场对线程安全认知的重新洗牌。

综合 Python 官方文档、CSDN、byteiota 报道 | 2026-08-17