Hasty Briefsbeta

双语

Python removes "experimental" tag from the "nogil" free-threaded Python

a year ago
  • #Python
  • #Concurrency
  • #Free-threading
  • 不支持线程模块或有条件支持线程模块是库的合理选择
  • 在自由线程构建下运行单线程测试不太可能发现问题,但使用pytest-run-parallel可能暴露假阳性问题和真实线程问题
  • 指导委员会(SC)批准PEP 779,将在Python 3.14中移除自由线程构建的'实验性'标签
  • 第二阶段的关键要求包括:保持C API/ABI兼容性、性能与内存防护机制、完善文档、以及为高级并发原语做准备
  • 性能下降应控制在10%以内,经SC讨论后允许最高15%。内存使用增长必须低于15%,硬性上限为20%
  • 文档必须清晰说明对用户的保证、线程安全性以及与并发相关的细节,涵盖普通用户、开发者和CPython贡献者
  • SC鼓励开发更高级的并发原语,可能将其纳入标准库的`concurrent`包中
  • 基准测试必须全面且可重复,需使用pyperformance并增加真实工作负载基准
  • SC建议在3.14 beta 3版本中移除CPython自由线程构建的'实验性'标签
  • 关于是否将自由线程构建设为默认或唯一版本,未来决策将取决于社区和CPython的发展情况