Python自由线程时代来临:GIL终将被淘汰
近期, 在圈子范围之内, 有一个话题一次又一次、再三再四地火起来了, 此话题为自由线程Free。事情是这样的上一个月, 2.13宣布不再为3.13t构建wheel, JAX v0.11也相继宣布同样不再为3.14t且不再为3.14t和为3.15t构建wheel, 而是全都全面转向3.14t和3.15t。紧随着, 8月4号到来, 3.15首个候选版本予以发布, 自由线程的稳定ABI正式实现落地。这节奏感觉 GIL 是真的要被抬走了。说实话, 好多小伙伴儿听到“自由线程”这四名儿字, 反应大多是——“似乎……”, 但。能让 多核并行然后就没有然后了。今天咱们就把它掰扯清楚。GIL 是个什么东西想象一下你开了一家奶茶店店里只有一台收银机。就算你聘请了8个店员8核CPU, 顾客排起了长队, 然而在同一时刻, 可只是有1个人能够通过收银机进行结账操作罢了, 其余的7个人, 只能大眼瞪小眼地干着急。你提供的内容似乎不完整, 请补充完整准确的信息, 以便我按照要求进行改写。你会惊讶地发现双线程并没有比串行快甚至可能更慢。由于, GIL 在后面卡着脖子, 致使两个线程来回争抢锁, 但这样子上下文切换还额外耗费到时间了。简而言之呢, GIL致使多线程于计算密集的情景之中, 转变成为了“假并行”。那以前是怎么绕过去的老司机们早就摸索出了几条绕路多进程, 其中每个进程都有着属于自身的 GIL, 这相仿于开设许多家分店, 而且每家分店均有独立操作的收银机。然而, 进程之间的通信也就是 IPC 却极为繁重, 同时内存的开销也非常大。协程从本质上来说依旧是单线程, 它适宜于 I/O 密集的情况, 像是网络请求、文件读写这类 , 然而一旦遇上 CPU 密集的状况, 它同样会陷入停滞的状态。对于 C 扩展而言, 要将计算密集的部分运用 C 重写, 并且在 C 代码当中手动去释放 GIL。这几招虽然有用但总有一种打补丁的感觉。社区当中, 呼喊着要去掉 GIL 的声音, 已经持续呼喊了将近二十年, 然而, 始终没有任何人能够拿出一个让所有人都可以接受的方案。直到 Meta 的 Sam Gross 站了出来。自由线程把收银机拆了自由线程的核心思路简单粗暴直接让 GIL 变成可选项。不再是由一把大锁去管理所有东西, 而是采用一堆细粒度的小锁, 给每个对象配备一把微型的锁。这种微型锁只有1个字节, 谁使用谁就进行锁定, 使用完毕后便释放它。再搭配上原子引用计数, 以及线程安全内存分配器, 使得真正的多核并行得以成为可能。于自由线程构建情形之中而言, 4核CPU去运行计算任务了, 其速度确实是能够翻升多倍的, 这不再需要看GIL之脸色。现在能用吗到哪一步了给你一张时间表一看就明白版本时间状态3.13, 在2024年10月, 具备实验性, 带有“”这个标记, 单线程情况下速度慢了20%到40%。3.2025年10月, 正式予以支持, 单线程仅仅慢5至10%, 独立二进制为3.14t, 14。3.2026年10月, 预计, 15, 统一 ABI, 一个扩展, 同时, 兼容 GIL, 又兼容无GIL。3.于 17 减去 3.19, 就此进行推算之意考虑可得 2028 至2030, 那个时间段内, GIL 先是被默认为是关闭的情形处于这种情况, 甚至还会呈现出被完全移除的状况存在。重点来了3.14 起自由线程已经不是实验性功能了。如果你用的是 macOS 或者 Linux现在就能体验。去 官网下载页选带 free- 标记的安装包此刻, 超过百分之五十的、PyPI之中热门的包像NumPy、SciPy等等, 都已经给出了自由线程专门使用的wheel。但是别急着 All In自由线程再香也有几个坑需要先看清楚1. 单线程反而慢了 5-10%GIL 这个“大管家”没了以后, 每次操作对象都非得走原子引用计数, 和那细粒度锁, 就是在单线程的情况下, 确实相较于普通的情况稍微慢那么一些。如果你的程序本来就是单线程跑跑脚本没必要折腾。2. 线程安全还是得自己管GIL 没了 ≠ 你的代码自动变安全了。以往, GIL 悄然为你阻挡诸多竞态条件, 如今, 你需自行借助.Lock, 对共享数据予以保护:3. C 扩展兼容性不是所有第三方库都适配了。进行一个未曾声明对自由线程予以支持的C扩展的导入操作, 此时GIL会自动地再次启用, 这就相当于状态又返回到了之前的那种状况, 也就是回到了解放前, 是这样一种情况。最后我的建议很简单别盲目追新但值得保持关注。写 Web 后端的 够你用到退休搞数据分析、科学计算的自由线程真的能让你少喝好几杯咖啡。耗时二十年才戴上的这把枷锁, 于一场持续多年的接力赛当中正被一点一点拆除下来。能亲眼见证这个过程说实话挺酷的。彩蛋有关在这个话题上泼过一盆冷水的 Guido van, 他说, 去 GIL 的重要性被过度夸张了, 它主要供 Meta 这种超大规模用户使用, 对日常搬砖的影响没那么显著。很多人尝试走并行化这条路, 最后速度反而慢下来, 这表明大家对并发模型的理解还有提升的空间。

相关新闻

从 Prompt 工程到 Loop 工程的演进之路

从 Prompt 工程到 Loop 工程的演进之路

2024 年以来,AI Agent 成为人工智能领域最炙手可热的方向。如果说传统的大语言模型(LLM)是一颗聪明的大脑,那么 AI Agent 就是给它装上了眼睛、手和腿——它能自主感知环境、制定计划、调用工具,并在执行过程中不断自省…

2026/10/4 7:10:04 阅读更多 →
基于FFmpeg与OpenCV的本地音视频自动化处理与片段提取实践

基于FFmpeg与OpenCV的本地音视频自动化处理与片段提取实践

这次我们来看一个关于广播电视资料存档与片段提取的技术实践。项目标题指向的是CCTV-13新闻频道《360度》栏目在2006年7月25日播出的内容,涉及片头、片尾及中场精彩片段的整理。对于媒体从业者、内容研究者或档案数字化工作者而言,如何系统性地处理、分析…

2026/9/29 21:13:03 阅读更多 →
list55.com:专注列表内容转录的在线文本格式化工具

list55.com:专注列表内容转录的在线文本格式化工具

1. 先搞清楚 list55.com 到底解决了什么实际问题如果你经常需要从网页、PDF、图片或者任何非纯文本格式里,把一堆项目、名称、条目提取出来,整理成一个干净的纯文本列表,那 list55.com 这个工具就值得你花五分钟了解一下。它不是一个功能庞杂…

2026/10/2 4:47:25 阅读更多 →

最新新闻

xv6实验入门:从环境搭建到sleep命令全链路解析

xv6实验入门:从环境搭建到sleep命令全链路解析

1. 这不是“操作系统课作业”,而是一次亲手触摸Unix灵魂的实操入口如果你在搜索引擎里敲下“xv6怎么安装”“qemu windows 11 下”“如何执行 unix make”,说明你已经站在了MIT 6.S081实验的第一道门槛前——不是被PPT和概念包围,而是手握终端…

2026/10/4 7:09:47 阅读更多 →
26年给8款论文查重降重打了次分:结果有点意外

26年给8款论文查重降重打了次分:结果有点意外

毕业季的深夜,宿舍楼里亮着的屏幕大半都在跟论文较劲。查重报告上标红的段落、导师消息里那句"重复率再压一压",逼着人把希望寄托在各种降重工具上。可市面上的产品宣传一个比一个响亮,实际效果却要打了分才知道。这次花了两周时间…

2026/10/4 7:09:47 阅读更多 →
国内大学生论文季必用的AI论文网站有哪些?

国内大学生论文季必用的AI论文网站有哪些?

国内高校学生在论文写作过程中,越来越依赖AI论文工具提升效率,目前主流工具以本土化全流程服务为主,结合通用大模型与专业辅助功能,覆盖选题构思、框架搭建、初稿撰写、内容降重、查重检测及格式排版等关键环节,以下将…

2026/10/4 7:09:47 阅读更多 →
Carsim 找不到 MATLAB?从版本兼容到路径配置的完整排查指南

Carsim 找不到 MATLAB?从版本兼容到路径配置的完整排查指南

Carsim 和 Matlab/Simulink 联合仿真时报"Cannot find MATLAB",Carsim 界面里怎么选都匹配不上 MATLAB 安装目录——这个问题我前后排查了两天,期间走过不少弯路,甚至一度怀疑是安装包的问题,最后发现其实是 Carsim 定位…

2026/10/4 7:09:47 阅读更多 →
2026-09-30 GitHub Trending 速报:高效刷榜与项目评估指南

2026-09-30 GitHub Trending 速报:高效刷榜与项目评估指南

早上打开 GitHub Trending 已经成了我的固定动作,像有些人每天刷新闻一样,我看的是开源世界每天冒出来的新东西。2026-09-30 这天的榜单纯粹是“信息量很大”的那种,AI 工具、机器人项目、个人知识库、还有几个怎么看都不像正经项目的仓库&am…

2026/10/4 7:09:47 阅读更多 →
JavaWeb小型音乐网站完整案例:从数据库设计到部署排错全解析

JavaWeb小型音乐网站完整案例:从数据库设计到部署排错全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 7:08:47 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →