网易首页 > 网易号 > 正文 申请入驻

Python线程多核并行之路

0
分享至

Python的线程有个老毛病:一个进程里,同一时刻只允许一个线程执行Python字节码。这就是GIL,全局解释器锁。它让CPython的内存管理保持简单安全,代价是线程没法把CPU密集型任务摊到多个核上。


想要真并行,开发者过去只有两条路:上多进程,或者依赖那些主动释放锁的C扩展。现在多了第三条——free-threaded构建,官方文档已经把它称为受支持,不再标注为实验性。

这条路走了不短。PEP 703提出设想,2024年10月随Python 3.13作为实验特性落地。第一版代价很实在:单线程代码明显变慢,一些内部优化因为还没做到线程安全被迫关掉。转折点是PEP 779,2025年6月被接受,为这个构建转正定下了标准。2025年10月发布的Python 3.14,把这些标准都满足了。

核心团队把它称作渐进计划的第二阶段。至于更后面的阶段会不会让free threading变成唯一构建,目前仍是开放问题。它依旧是可选项,和默认解释器分开存在。

代价缩到了5%到10%

专门用来加速普通Python代码的自适应解释器,现在能在free-threaded模式下跑了。单线程性能损失相对标准构建缩小到大约5%到10%。

启用方式不是给现有安装拨个开关,而是装一个单独的构建,通常标着3.14t。uv这类工具可以让两个构建并存,方便拿自己的代码做对比。语言还是同一门语言,底下的运行时换了一套。

收益最明显的地方,是能拆到多线程里的CPU密集型代码。比如批量解析和转换大量文件,对海量记录跑打分或特征计算,或者在工作池里处理互相独立的数据块。

在标准构建上,线程池干这类活几乎拿不到好处,锁会把计算串行化。团队于是转向多进程,而多进程自带一笔税:每个参数和结果都要pickle后在进程间传递,每个worker各持一份共享数据的副本导致内存翻倍,启动开销也会累积。

GIL拿掉之后,同样的线程代码可以跨核扩展,所有线程读的是内存里同一批对象。序列化那一步没了,程序也更简单——不必仅仅为了用上花钱买的硬件,就另搭一套进程架构。

收益大小取决于任务切分得好不好。大部分时间在等网络或磁盘的活,本来用线程就没问题,因为I/O期间锁是释放的,换构建几乎看不出变化。重计算又频繁对共享状态加锁的任务,换哪个构建都可能扩展不佳。

效果最好的,是能切成独立片段、且大部分时间跑在Python代码或配合free threading的库里的负载。想知道答案只有一条诚实的路:测。在将来跑生产的那台机器上,用同一份线程基准,在两个构建上各跑几个线程数。

生态是更大的坎

单线程代码仍然慢几个百分点。一个从不用线程做计算的应用,换过去没有收益,只有损失。3.14里的实验性JIT编译器在free-threaded构建上还不可用,指望这项加速的人要留意。

更大的障碍在生态。带C扩展的包需要为free-threaded解释器构建的wheel,核心科学计算库之外的覆盖仍不均衡,一个不支持的依赖就能卡住整个采用计划。

2026年10月发布的Python 3.15用PEP 803解决了一部分:为free-threaded构建加上稳定ABI,标记为abi3t,扩展作者可以发一个wheel跨多个free-threaded版本通用。但构建工具还在追赶。

还有一个更安静的风险藏在自己的代码里。GIL曾顺带掩盖了许多竞态条件,拿掉它,那些从来不算真正线程安全的代码里的bug就可能暴露出来。检查共享状态,该加锁的地方加锁,上负载测试之后再相信结果。

方向已经清楚。主要库在发布free-threaded构建,核心团队把这项工作当作长期承诺,而不是边角实验。负载是CPU密集型、可并行、依赖包也兼容,现在就可以试。否则盯着它,每个版本重新测一遍。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
每体:比赛开始前,贝蒂斯球迷向巴萨球迷投掷物品

每体:比赛开始前,贝蒂斯球迷向巴萨球迷投掷物品

懂球帝
2026-10-19 00:13:27
碧桂园爆雷比恒大问题更大,看到许家印的结局,杨氏父女猛求生

碧桂园爆雷比恒大问题更大,看到许家印的结局,杨氏父女猛求生

说故事的阿袭
2026-10-17 04:14:57
《嫁金钗》君黛饮毒酒身亡,魏恒娥才知,最阴险的人一直在身边!

《嫁金钗》君黛饮毒酒身亡,魏恒娥才知,最阴险的人一直在身边!

可乐谈情感
2026-10-18 11:44:34
敬一丹曾爆料:主持揭露东莞特殊服务节目时,她与导演发生争执

敬一丹曾爆料:主持揭露东莞特殊服务节目时,她与导演发生争执

言过于诚
2026-09-21 10:04:14
上海的富婆王玲,和大16岁高曙光很恩爱,把二婚生活过成顶配

上海的富婆王玲,和大16岁高曙光很恩爱,把二婚生活过成顶配

情感大头说说
2026-10-17 04:30:28
史诗对决!安洗莹决胜局5-11大逆转,力克山口茜斩获丹麦公开赛冠军

史诗对决!安洗莹决胜局5-11大逆转,力克山口茜斩获丹麦公开赛冠军

小兰看体育
2026-10-19 00:05:08
这几种水果“自带胰岛素”,糖尿病人不吃太可惜了!你爱吃哪种?

这几种水果“自带胰岛素”,糖尿病人不吃太可惜了!你爱吃哪种?

健康科普365
2026-09-08 11:25:08
英国公布的圆明园被毁前照片,美如仙境,引发世界关注

英国公布的圆明园被毁前照片,美如仙境,引发世界关注

贱议你读史
2026-05-23 15:23:34
这就是赤裸裸的现实!工商银行已经到了最危险的时候?

这就是赤裸裸的现实!工商银行已经到了最危险的时候?

财经保探长
2026-08-23 21:43:55
中国各省数学实力综合最新排名分析

中国各省数学实力综合最新排名分析

音乐时光的娱乐
2026-10-18 08:01:28
乌克兰摧毁俄罗斯最大的苏尔古特油气加工厂!轮到天然气了?

乌克兰摧毁俄罗斯最大的苏尔古特油气加工厂!轮到天然气了?

项鹏飞
2026-10-17 20:09:32
薄一波究竟属于哪一级别?是正国级,还是副国级?

薄一波究竟属于哪一级别?是正国级,还是副国级?

人生录
2026-10-15 05:18:24
华为为什么能在绝境中锻造出数字主权

华为为什么能在绝境中锻造出数字主权

风铃草语
2026-10-18 07:13:33
1995—1999:被Windows95点亮的PC游戏黄金年代

1995—1999:被Windows95点亮的PC游戏黄金年代

记录生活日常阿蜴
2026-10-16 04:41:39
为什么母亲筑“壳”却让孩子困在枷锁里?

为什么母亲筑“壳”却让孩子困在枷锁里?

风铃草语
2026-10-18 07:24:16
英国专家看透了:中国至少相当于100个伊朗,美国迟早要滚出亚太

英国专家看透了:中国至少相当于100个伊朗,美国迟早要滚出亚太

蜉蝣说
2026-09-17 10:59:39
陈奕迅官宣26场演唱会:观众须封存手机,现场不得交谈、欢呼、拍手、跟唱

陈奕迅官宣26场演唱会:观众须封存手机,现场不得交谈、欢呼、拍手、跟唱

荆头条
2026-10-18 20:14:58
灰熊正兜售杰克逊!湖媒盼克内克特+次轮换他 扫洛城内线轮转软肋

灰熊正兜售杰克逊!湖媒盼克内克特+次轮换他 扫洛城内线轮转软肋

颜小白的篮球梦
2026-10-18 20:33:32
上海炒股冠军罕见发声:股价往往大跌前,都会提前释放3个信号!

上海炒股冠军罕见发声:股价往往大跌前,都会提前释放3个信号!

股经纵横谈
2026-09-02 21:57:36
广东赢4分更像输球:21次失误背后,杜锋那扇门还开着

广东赢4分更像输球:21次失误背后,杜锋那扇门还开着

眼界看世界
2026-10-18 21:47:30
2026-10-19 00:51:00
算力游侠
算力游侠
游走在API与报错之间,用魔法(AI)打败魔法的非硬核玩家。
218文章数 98关注度
往期回顾 全部

科技要闻

王江舟院士:6G到底是不是骗局 是不是收割

头条要闻

法国爆发严重暴力骚乱:百年市政厅被焚烧 马克龙发声

头条要闻

法国爆发严重暴力骚乱:百年市政厅被焚烧 马克龙发声

体育要闻

别在我的地盘夺冠!海港队史首次双杀蓉城

娱乐要闻

郭麒麟被传领证,女方戳破谣言

财经要闻

马斯克:美债问题只能靠AI和机器人解决

汽车要闻

星瑞L PLUS限时售价10.97万元起 开启智混3L时代

态度原创

本地
房产
艺术
公开课
军事航空

本地新闻

因新荣记出圈,这座浙东小城才是吃货天堂

房产要闻

利好密集落地+现房好房断档,广州楼市买入窗口,正在倒计时!

艺术要闻

不敢信这是画的!比利时大师的女性油画,逼真程度突破认知

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

乌克兰全国超15处重要能源设施遭俄袭击 泽连斯基发声

无障碍浏览 进入关怀版