首页 > Python资讯 博客日记
Python 指导委员会计划接受 PEP 703 提案,让全局解释器锁成为可选
2023-07-30 21:18:31Python资讯围观152次
CPython 核心开发者 Thomas Wouters 今日代表 Python 指导委员会宣布了关于 PEP 703 提案(在 CPython 中使全局解释器锁成为可选)的最新进展。
他表示,从社区对 no-GIL 提案的民意调查结果来看,整体是积极的支持态度。因此 Python 指导委员会计划接受 PEP 703 提案,目前正在研究相关细节。
Thomas Wouters 介绍了指导委员会的预期想法:
从长远来看(可能 5 年以上),no-GIL 构建应该是唯一的构建。他们不希望在出现 GIL 和 no-GIL 构建(以及扩展模块)之间创建永久的区分
保持向后兼容,避免出现另一种 Python 3 的情况
承诺完全切换到 no-GIL 构建之前,需要看到社区对其的支持
在将 no-GIL 作为默认设置之前的任何时候,如果事实证明它会带来太大的破坏性而收益太少,他们会改变想法。这样的决定可能意味着回滚所有工作,因此在确定要将 no-GIL 设置为默认值之前,特定于 no-GIL 的代码应该在某种程度上是可识别的。
基于此,他们的开发方向分为三个阶段:
短期内,将 no-GIL 构建添加为实验性构建模式,大概是在 Python 3.13 提供
从中期来看,当确信有足够的社区支持来使 no-GIL 的生产使用可行后,他们会支持 no-GIL 构建,但不是默认
从长远来看,他们希望 no-GIL 成为默认值,并删除 GIL 的任何痕迹(不会不必要地破坏向后兼容性)
PEP 703 提案建议向 CPython 添加构建配置 (--disable-gil
),使其在没有全局解释器锁的情况下运行 Python 代码,并进行必要的更改以保证解释器线程安全。
根据提案的描述,CPython 的全局解释器锁 (GIL) 阻止了同时多线程执行代码,成为了在多核 CPU 上提高 Python 代码运行效率的一大障碍。
标签:
相关文章
最新发布
- 如何使用Python和Plotly绘制3D图形
- NumPy 分割与搜索数组详解
- Django 自定义管理命令:从入门到高级
- 关于appium-python-client报错问题:AttributeError: ‘NoneType‘ object has no attribute ‘to_capabilities‘
- 头歌实践教学平台Python-列表类型翻转教学
- 学习 Python 之 Pandas库
- 华为OD机试 - 掌握的单词个数(Java & JS & Python & C & C++)
- Python pandas对表格进行整行整列筛选、删除或修改,对特定值进行修改
- OpenCV调用USB摄像头/相机,并解决1080p下的延迟卡顿问题(附Python代码)
- 营业执照识别接口:通过API实现营业执照识别功能
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- PyPy JIT编译器背后的奥秘(揭开PyPy高性能Python的编译优化技术)
- Python数字ceil()方法
- PyCharm:提升Python开发效率的强大IDE工具
- Python分析程序性能指南 - 3种内存和CPU诊断方法助你优化代码(掌握Python内存和CPU分析技巧)
- Numba:无缝将Python代码编译为机器代码的利器(让你的Python程序跑的飞快!Numba高效编译的6大技巧)
- 彻底理解Global Interpreter Lock,解锁Python多线程编程(为什么Python多线程速度这么慢)
- Ruff更新到v0.0.281(Rust 编写的高性能 Python 代码分析工具)