no-GIL Python,启动!

出品 | OSC开源社区(ID:oschina2013)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. 默认阶段。此时默认启用自由线程(初期仍支持禁用),但此阶段确切的标准很难确定,目标是使开发者尽可能无缝且无痛地进行升级和兼容。

相关链接:https://discuss.python.org/t/pep-703-making-the-global-interpreter-lock-optional-in-cpython-acceptance/37075


往期推荐



Linus曾给Windows 7热情点赞
云原生 IDE 将成为常态
优先展示冒牌货且定向至恶意软件,网友:是时候摆脱Google了



活动推荐

10 月 28 日,本周六,源创会苏州站暨 Techo TVP 技术沙龙将正式拉开帷幕。

这一次,我们以“寻宝 AI 时代”为主题,希望能给每一位开发者新的启发,一起在 AI 新时代更上一层楼。同时,我们将沙龙地点定在了轰趴馆,希望各位玩得开心!

快扫描下方二维码,或点击文末“阅读原文”即刻报名 🎁🎁


阅读原文立即报名>>


相关推荐

  • 您的数据存储和灾备系统选对了吗?
  • 是时候放弃云计算了
  • ChatGPT企业版,基本凉了!
  • 谷歌大爆料:神秘AI工具曝光,Gemini将取代PaLM 2
  • 高精度低成本游戏3D人脸重建方案,腾讯AI Lab ICCV 2023论文解读
  • 清华光电计算新突破:芯片性能提升万倍,研究登顶Nature
  • Nature | 30多年前的断言被打破了?大模型具备了人类水平的系统泛化能力
  • 腾讯混元大模型再进化,文生图能力重磅上线,这里是一手实测
  • 【重要通知】:第五期粉丝福利中奖名单出炉,尽快联系我,免费送福利
  • 2.2K Star Google开源的VR绘图工具,支持主流的VR设备
  • 5个实用的Python编程小技巧
  • React 弹窗组件用的 createPortal 是怎么实现的?
  • 美国变卦,RTX 4090 囤早了...
  • 国内具有影响力的三个3D视觉公众号
  • 语雀 P0 事故复盘,这 9 个字亮了!
  • AI 智能体能否取代工程经理?
  • 自研代码超 14 万行、沉淀 11 年,deepin-IDE:正在改写“为什么没有好的国产 IDE”答案!
  • Uber 将 4000 多个微服务迁移到新的多云平台 Up
  • Vue.js 组件的复用性:真正可复用还是伪装的可复用?
  • 阳光保险张晗:在未来的保险行业,百亿级专用模型将成为主流趋势