Python 3.13 允许禁用 GIL + 子解释器

Python 3.13 允许禁用 GIL + 子解释器

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

Python 3.13新增了通过PEP 703删除全局解释器锁(GIL)的功能,可以禁用GIL以提高Python代码的性能。子解释器增强使得在当前进程中可以使用多个解释器。

🎯

关键要点

  • Python 3.13新增了通过PEP 703删除全局解释器锁(GIL)的功能。
  • 可以通过命令行标志或环境变量禁用GIL,以提高Python代码性能。
  • GIL使得Python中的线程更容易管理,但也限制了每个CPU核心的多线程运行。
  • 移除GIL可能会导致Python初期出现bug,因此GIL-less版本将作为构建标志。
  • 在Python 3.13中,GIL默认仍然开启,待测试和修复bug后,可能在3.14版本中解决问题。
  • 子解释器的增强功能正在开发中,PEP 554和PEP 734描述了子解释器的使用。
  • 新模块interpreters将支持在当前进程中检查、创建和运行多个解释器的代码。
  • 该模块将提供基本的Queue类以便于解释器之间的通信。
  • Peter Sobot测试了GIL移除标志,发现某些进程的速度提升达17倍。
➡️

继续阅读