首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 3.13 取消了 GIL了吗?

Python 3.13 已经发布,但 GIL(全局解释器锁)仍未完全移除。不过,Python 官方在 3.13 中继续推进了相关改进,以下是关键进展:

1. Python 3.13 的 GIL 状态

GIL 仍然默认启用

,但引入了更成熟的“Per-Interpreter GIL”(PEP 684),允许在子解释器中禁用 GIL,适用于多线程并行计算。

nogil(无 GIL)模式仍在实验阶段

,尚未成为默认选项,但可以通过编译选项或 API 启用部分功能。

官方仍在评估完全移除 GIL 对现有 C 扩展和单线程性能的影响,预计Python 3.14(2025 年 10 月发布)可能进一步推进。

2. 如何尝试无 GIL 模式(Python 3.13)

如果想在 3.13 中使用无 GIL 特性:

子解释器模式

(Per-Interpreter GIL):

import _xxsubinterpreters as interpreters

interp_id = interpreters.create()

interpreters.run_string(interp_id, "import threading; print('Running without GIL!')")

编译自定义分支

:3.13版本可尝试源码编译,或者参考 Sam Gross 的nogil分支(需手动编译)。

3. 未来路线图(Python 3.14+)

2025 年

:Python 3.14 可能进一步优化无 GIL 模式,甚至提供可选的无 GIL 解释器(需显式启用)。

长期目标

:完全移除 GIL,但需确保不影响单线程性能和 C 扩展兼容性。

4. 当前替代方案

如果需高性能并行计算:

多进程

:multiprocessing或concurrent.futures.ProcessPoolExecutor。

异步编程

:asyncio(I/O 密集型任务)。

外部工具

:用 Rust/C++ 编写无 GIL 扩展(通过PyO3或Cython的nogil模式)。

总结

Python 3.13(2024)未移除 GIL,但改进了子解释器隔离和无 GIL 实验支持。

完全移除 GIL 预计在 3.14 或更高版本(2025 年10月以后)。

官方会谨慎推进,确保兼容性。建议关注 Python 官方博客 获取最新动态。

如需最新进展,可查看 Python 3.13 发布说明 或 PEP 684。

交流讨论:欢迎在评论区留言!

重要提示:本文主要是记录自己的学习与实践过程,所提内容或者观点仅代表个人意见,只是我以为的,不代表完全正确,不喜请勿关注。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/ORWPegUWRJiqNtreoXSDvKYA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券