Python 3.14 发布:自由线程转正,t-string、多解释器与 JIT 落地
Python 3.14 于 2025-10-07 发布。官方 What's New 见 docs.python.org/3/whatsnew/3.14.html。
语言与运行时
PEP 779:自由线程(free-threaded)Python 得到官方支持,不再是实验性特性。free-threaded 模式(PEP 703)的实现已完整,包括 C API 改动;专精化自适应解释器(PEP 659)在 free-threaded 下启用,单线程性能损失降到约 5–10%,具体取决于平台与 C 编译器。
PEP 649 / PEP 749:注解改为延迟求值。使用注解的语义得到改善,同时降低运行时开销。
PEP 750:模板字符串字面量 t-string。语法类似 f-string,面向自定义字符串处理场景。
PEP 758:except 与 except* 可省略括号。
PEP 765:禁止使用会退出 finally 块的 return / break / continue。这类写法以往会静默吞掉异常,现在直接报错。
PEP 741:改进的配置 Python 的 C API。
标准库与工具链
PEP 734:标准库支持多解释器。新增 concurrent.interpreters 模块与 concurrent.futures.InterpreterPoolExecutor,可在同一进程内运行多个解释器,借此利用多核。
PEP 784:新增 compression.zstd 模块,支持 Zstandard 压缩。
PEP 768:CPython 的零开销外部调试器接口,pdb 可以远程附加到运行中的进程。
uuid 支持 v6–v8,v3–v5 与 v8 的生成速度提升 40%。此外还有增量 GC、改进的错误信息、内置 HMAC 实现(来自 HACL*,经形式化验证),以及用于检查运行中带异步任务的 Python 进程的新命令行界面:
python -m asyncio pstree
实验性 JIT 出现在 Windows / macOS 官方二进制中;新增 Android 二进制。
自由线程模式细节
在 Windows 上为 free-threaded 构建编译扩展模块时,预处理器变量 Py_GIL_DISABLED 需由构建后端指定,不再由 C 编译器自动确定;运行时可用 sysconfig.get_config_var() 查询编译时设置。
新增 -X context_aware_warnings 标志,用于控制并发安全的警告控制。free-threaded 构建默认 true,启用 GIL 的构建默认 false。
新增 thread_inherit_context 标志:启用后,threading.Thread 创建的线程以 start() 调用者的 Context() 副本启动,使 catch_warnings 建立的警告过滤上下文能被该上下文内启动的线程 / 任务继承;它也影响 decimal 等使用上下文变量的模块。free-threaded 默认 true,GIL 构建默认 false。
ctypes 现在支持 free-threading 构建。
asyncio
asyncio 为原生任务实现了新的每线程双向链表,标准基准提升 10–20%,并减少内存占用。对外部内省工具(python -m asyncio pstree)可内省所有线程中运行的任务调用图。对 free-threaded 构建提供一等支持:多个事件循环可在不同线程并行执行,并随线程数线性扩展。