Python 3.14 发布,带来多项重要更新。自由线程(PEP 779)现已稳定支持,全局解释器锁(GIL)依然可选,移除GIL仍在讨论。多解释器(PEP 734)允许同一进程运行多个独立GIL的解释器,并引入InterpreterPoolExecutor。官方二进制包新增实验性即时编译器(JIT),性能表现待观察。模板字符串(t-string, PEP 750)作为f-string补充。增量式垃圾回收减少了暂停时间。交互式Shell支持语法高亮和import自动补全。asyncio增加了内省能力,可检查async task树。
✨ **自由线程(PEP 779)稳定支持**:Python 3.14 标志着自由线程特性的成熟,此前需要在编译时显式启用。虽然全局解释器锁(GIL)仍然是可选的,但关于其彻底移除的讨论(PEP 703)仍在进行中,这为Python的并发模型带来了新的可能性。
⚙️ **多解释器(PEP 734)与并行执行**:新版本引入了多解释器支持,允许在同一进程内运行多个独立的解释器实例,每个实例拥有自己的GIL。此举进一步推动了Python的并行编程能力,并引入了`InterpreterPoolExecutor`来简化管理多个解释器的并行任务。
🚀 **实验性即时编译器(JIT)加入**:官方发布的macOS和Windows二进制版本现在包含了实验性的即时编译器(PEP 744)。尽管仍处于早期开发阶段,其性能表现具有不确定性,可能在不同工作负载下带来10%的性能下降或20%的性能提升,为性能优化提供了新的方向。
💡 **模板字符串(t-string, PEP 750)与交互体验提升**:新增的模板字符串(t-string)功能是对f-string的补充,允许用户以类似字符串字面量的方式直接创建模板对象。同时,交互式Shell默认启用语法高亮,并增加了对`import`语句的自动补全,极大地改善了开发者的交互体验。
♻️ **增量式垃圾回收与Asyncio内省**:Python 3.14的循环垃圾回收器采用了增量式处理,显著减少了处理大规模内存时的最大暂停时间。此外,`asyncio`模块新增了内省能力,用户可以通过命令行工具检查正在运行的异步Python程序的任务树,便于调试和监控。
重大更新:
自由线程( PEP 779 )特性已稳定支持。之前在 Python 3.13 中,这一特性需要显式指定编译选项。不过,全局解释器锁( GIL )依然是可选的,而是否要彻底移除 GIL 仍在讨论中( PEP 703 );多解释器( PEP 734 )特性已支持。现在,可以在同一个进程中运行多个解释器,每个解释器都有独立的 GIL 。作为 Python 并行编程中减少对 multiprocessing 依赖的又一步,还添加了 InterpreterPoolExecutor 来帮助管理多个解释器的并行;官方发布的 macOS 和 Windows 版二进制现已包含 实验性 的即时编译( JIT )器( PEP 744 )。该 JIT 编译器尚处于早期开发阶段,性能表现存在波动:启用后根据工作负载不同,可能产生 10% 的性能下降至 20% 的性能提升;模板字符串( t-string ,PEP 750 )支持。这一功能主要是对 f-string 的补充,允许从类似字符串字面量的写法直接创建一个字符串模板对象;增量式垃圾回收。循环垃圾回收器现在采用增量式处理。这意味着对于较大的堆内存,最大暂停( Stop The World )时间将减少一个数量级或更多;交互式 Shell 支持语法高亮。除非显式禁用,否则从 Python 3.14 起,Python 交互式环境( RHEL )将默认在终端中渲染代码高亮。此外,Shell 还增加了对 import ___ 的自动补全;asyncio 内省能力。可以使用 python -m asyncio <ps|pstree> <PID> 功能来检查正在运行的异步 Python 程序的 async task 树。
更多可在这里看到: https://docs.python.org/zh-cn/3.14/whatsnew/3.14.html