0

0

Python PEP 703 的 GIL 移除路线图跟踪

冷漠man

冷漠man

发布时间:2026-02-24 21:09:55

|

891人浏览过

|

来源于php中文网

原创

pep 703 并非移除 gil,而是使其可选:需编译自由线程版 python 并显式启用,gil 才在运行时禁用;默认安装仍带 gil,且当前仅实验性支持,生产环境尚不适用。

python pep 703 的 gil 移除路线图跟踪

PEP 703 是什么,它真能“移除 GIL”吗?

不是移除,是“让 GIL 可选”。PEP 703 的核心目标是把 CPython 的全局解释器锁(GIL)从强制启用改为运行时可禁用——前提是 Python 解释器以“自由线程模式”(free-threaded build)编译,并且用户显式启用。它不改变默认行为,也不要求现有代码改写,但为真正并行的 CPU 密集型多线程铺了路。

  • 默认安装的 python(比如通过 python.org 下载、apt install python3)仍是带 GIL 的构建,完全不受影响
  • 自由线程构建目前仅在 CPython main 分支提供,需手动编译,且暂无稳定版二进制分发
  • 启用后,threading 模块的行为不变,但多个线程能真正并发执行 Python 字节码(而非轮流切换)

怎么编译并验证一个自由线程的 Python?

只有从源码构建才能获得 PEP 703 支持,且必须开启 --without-pymalloc--with-free-threading 配置选项(后者是关键开关)。

  • 克隆最新 CPython main 分支:git clone <a href="https://www.php.cn/link/d5fc93640233c90c41c729d8b185bd56">https://www.php.cn/link/d5fc93640233c90c41c729d8b185bd56</a> && cd cpython
  • 运行配置:./configure --with-free-threading --without-pymalloc --prefix=$HOME/python-free
  • 编译安装:make -j && make install
  • 验证是否生效:$HOME/python-free/bin/python3 -c "import sys; print(sys._is_gil_enabled())" → 输出 False 才表示 GIL 确实被禁用

注意:--without-pymalloc 是当前必要条件,因为 pymalloc 的内存分配器不是线程安全的;未来可能优化,但现阶段跳过它会编译失败或运行崩溃。

哪些代码能立刻受益,哪些反而更慢?

自由线程模式只对满足两个条件的场景有实际提升:纯 Python 的 CPU 密集型计算 + 显式使用 threading(而非 multiprocessing 或异步)。其他情况要么无变化,要么出问题。

Peppertype.ai
Peppertype.ai

高质量AI内容生成软件,它通过使用机器学习来理解用户的需求。

下载

立即学习Python免费学习笔记(深入)”;

  • ✅ 能受益:用 threading.Thread 跑多个 numpy 计算(前提是 numpy 已链接 OpenMP 且释放 GIL)、自定义数值循环(for i in range(10*<em>7): total += i </em> i
  • ❌ 不受益甚至退化:I/O 密集型(requests.getopen())——GIL 本就常被释放,自由线程不带来额外收益;C 扩展未适配线程安全(如老版本 lxml、某些数据库驱动),可能触发数据竞争或段错误
  • ⚠️ 需检查:所有全局变量、模块级缓存、<strong>dict</strong> 修改都变成竞态点,threading.local() 仍是安全的,但 global counter = 0 + 多线程自增必须加 threading.Lock

现在就上生产?先看看这三件事

PEP 703 还在演进中,main 分支的自由线程构建属于实验性功能,离生产就绪有明确距离。

  • 第三方包兼容性极差:绝大多数 C 扩展(psycopg2pillowcryptography)未声明线程安全,导入即可能 crash
  • 没有 wheel 支持:pip install 默认仍装 GIL 版本,你得自己为每个依赖编译自由线程版,或等作者发布 abi3 + free-threaded 双标签轮子
  • 调试难度陡增:Segmentation fault 更难复现,sys.settrace 和部分 profiler 在自由线程下行为异常

真正值得关注的节点是:CPython 3.13 正式支持 --with-free-threading 配置,而首个标记为 “production-ready free-threaded build” 的官方二进制,预计最早出现在 3.14 或之后。在此之前,它更适合在隔离环境里跑基准测试,而不是替换线上 Python。

GIL 是否启用,现在还是个编译期决定,不是运行时开关;想靠 pip install 一键切换,还早。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

351

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

427

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

789

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

362

2025.07.23

python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

192

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

13

2026.02.03

全局变量怎么定义
全局变量怎么定义

本专题整合了全局变量相关内容,阅读专题下面的文章了解更多详细内容。

87

2025.09.18

python 全局变量
python 全局变量

本专题整合了python中全局变量定义相关教程,阅读专题下面的文章了解更多详细内容。

102

2025.09.18

Golang 生态工具与框架:扩展开发能力
Golang 生态工具与框架:扩展开发能力

《Golang 生态工具与框架》系统梳理 Go 语言在实际工程中的主流工具链与框架选型思路,涵盖 Web 框架、RPC 通信、依赖管理、测试工具、代码生成与项目结构设计等内容。通过真实项目场景解析不同工具的适用边界与组合方式,帮助开发者构建高效、可维护的 Go 工程体系,并提升团队协作与交付效率。

1

2026.02.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Django 教程
Django 教程

共28课时 | 4.5万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号