no-GIL Python,启动!


CPython 核心开发者 Thomas Wouters 代表 Python 指导委员会宣布:正式接受 PEP 703 提案

PEP 703(Making the Global Interpreter Lock Optional,让全局解释器锁成为可选),简称 no-GIL,也被称为自由线程 (free-threaded)。

根据提案的描述,CPython 的全局解释器锁 (GIL) 阻止了同时多线程执行代码,成为了在多核 CPU 上提高 Python 代码运行效率的一大障碍。PEP 703 提案建议向 CPython 添加构建配置 (--disable-gil),使其在没有全局解释器锁的情况下运行 Python 代码,并进行必要的更改以保证解释器线程安全。

Thomas Wouters 表示,Python 指导委员会当然很清楚 no-GIL 意味着什么,社区普遍也是秉承支持的态度,毕竟它为 Python 带来巨大好处。

但与此同时,委员会担心移除 GIL 会破坏目前的所有扩展模块,或者显着降低 CPython 的性能或可维护性。此外,第三方 PyPI 软件包生态系是 Python 的一大优势,与 C 语言库的紧密、高效集成则是 CPython 的优势之一。它们使得存在多种软件包选择成为可能,这是 Python 的独特卖点。

因此他们需要谨慎实现 no-GIL,避免破坏这些优势,或者导致其他开发者放弃数十年的软件包开发。

由于还没有实现 no-GIL,评估实际影响以及让第三方软件包适应新的自由线程的实用性是很困难的。尤其是与线程相关的问题的不可预测性更是让难度升级,因为有些问题只有在显着负载下才会暴露。

目前 Python 指导委员针对 no-GIL 的实现计划分成三个阶段:

  1. 实验阶段。通过提供 build-time 选项,让开发者在构建时选择启用自由线程 (free-threaded)。在此阶段对外明确告知是实验性的,不支持用于生产环境。
  2. 支持但不默认阶段该阶段将在 API 和 ABI 变更充分解决,并且有足够的社区支持时开始启动。
  3. 默认阶段。此时默认启用自由线程(初期仍支持禁用),但此阶段确切的标准很难确定,目标是使开发者尽可能无缝且无痛地进行升级和兼容。

点此查看详情。


相關推薦

2023-10-15

3.13 的许多新特性仍在计划和编写中——包括备受关注的 no-GIL。到目前为止,最显著的变化是许多特性已被标记为弃用,其中大部分计划在 Python 3.15 或 3.16 中删除。 Python 3.13 的下一个更新版本是 3.13.0a2,目前计划于 2023-11-21 发

2024-01-07

生成式人工智能 (Gen AI) 关注度更高、BPF 大有作为、Python no-GIL 取得成功,以及开源项目维护者面临的危机,等等。 下面简单介绍 Jonathan Corbet 的预测内容。 一、Linux 内核社区开始不再将邮件列表作为其开发流程的核

2022-11-09

,估计老师肯定会让家长出题,所以提前准备一下,利用Python开发了一套自动生成小学生口算题的小应用。 为了让辛苦的程序员老爹解放抄题的双手,本程序让你拥有更多的时间去写代码而不用去手写几道口算题而劳神伤脑。

2023-10-21

家名为 Neptyne 的公司推出了一款可在 Google Sheets 中提供 Python 功能的产品。根据介绍,该团队早在今年 2 月份推出了 Neptyne,首个完全集成 Python 的电子表格。“不是一种编写电子表格脚本或允许 Python 程序与电子表格交互的 API

2024-04-09

件 将对于可执行文件的调用统一到二进制插件 内置Python插件,其中对于Python解释器的定位由Python二进制插件决定

2023-02-12

IPython 是一个综合环境,可以帮助程序员或开发人员等高级计算机用户测试或探索各种功能。尽管 Python 附带了一个强大的交互式解释器,使用户无需在目标计算机上创建额外的文件即可运行测试,但它在用户与软件交互方面存

2022-03-25

Python 软件基金会(PSF)已获得来自 Meta 公司的 300,000 美元的 Visionary 级别赞助,以支持 Python 生态系统发展。 PSF 方面表示,“作为 Meta 许多服务的支柱,从 Instagram 到其人工智能和数据基础设施,Python 对 Meta 非常重要。PyTorch

2022-05-19

在退休又复出加入微软的 Faster CPython 团队后, Python 之父 Guido van Rossum 在 2021 年 Python 语言峰会上放下狠话,称团队将在 Python 3.11 版本中实现至少提速 1 倍的进展。 而在今年的 Python 语言峰会上,Guido 和团队搭档 Mark Shannon 汇

2022-02-25

此前,Python 开发组一直在 Python 官方 Bug 网站  https://bugs.python.org/ (缩写为 bpo 或 BPO) 上进行 Bug 提交、跟踪和处理,该网站使用开源工具 Roundup 作为 Bug 跟踪器。 2 月 18 日, Python 核心开发者 Łukasz Langa 在 Python Discourse 论

2023-06-08

Python 3.11.4、3.10.12、3.9.17、3.8.17、3.7.17 和 3.12.0 beta 2 现已可用。3.10 在此次加入了久负盛名的纯安全版本系列;同时,3.7 的生命周期即将结束。除非 6 月发布另一个安全版本,否则 3.7.17 将是 Python 3.7 的最终版本。 安全修复程

2022-07-22

:修复了损坏的写入支持(bug #20896) SDK:修复了 Python 绑定错误地尝试将任意字节数据转换为 Python 3 的 unicode 对象,从而导致异常(bug #19740) API:修复了在 VM 未运行时添加虚拟 USB 大容量存储设备或虚拟 USB DVD 驱

2022-06-28

方面承诺其 Alpha-Omega Project 将提供 80 万美元的资金,供 Python 软件基金会(PSF)和 Eclipse 基金会进行平分。 Alpha-Omega Project 于今年 2 月启动,旨在与开源软件项目维护者合作,系统地发现开源软件中中新的、尚未发现的漏洞,

2023-11-07

hBit 是一款开源系统清理工具,可用于 Windows 和 Linux,由 Python 和 GTK 编写。 该版本扩展了清理功能,修复了许多错误,并更新了翻译。自 4.4.2 版本以来的更改: 清理 Firefox 上最近关闭的标签页。 清理基于 Chromium 的

2022-08-24

误,以下是这次更新中一些重要的内容: 启用了通过 Python 解释器(Python Interpreter)弹出窗口中的显示所有(Show all)弹出菜单来设置解释器的新 UI Docker:如果在 Docker 解释器配置期间设置了其他运行选项,那么通过运行/调