Python 即将实现真正的多线程!3.14版本GIL将成为历史
这一版本最受瞩目的变化,就是由Thomas Wouters、Matt Page和Sam Gross共同提出的PEP 779提案:“Python自由线程版本支持标准”。我们熟悉的传统Python,由于全局解释器锁(Global Interpreter Lock,简称GIL)的存在,即使在多线程环境下,Python代码实际上也只能在单线程上执行。GIL的本意是为了避免多线程并发时的冲突,却也大幅限制了
我有一支技术全面、经验丰富的小型团队,专注高效交付中等规模外包项目,有需要外包项目的可以联系我
时光飞逝!2024年3月我曾报道过Python将全面拥抱多线程,如今这一方向又有了重大的进展。
Python 3.14正式版预计将在三个月后,也就是2025年10月7日左右发布。这一版本最受瞩目的变化,就是由Thomas Wouters、Matt Page和Sam Gross共同提出的PEP 779提案:“Python自由线程版本支持标准”。从这份提案中,我们可以了解到,自由线程(free-threaded)模式相比传统单线程模式,有着诸多明显优势。目前,许多主流库已经率先支持自由线程版的Python。
虽然前景令人兴奋,但自由线程模式是否会成为Python的默认设置,目前还没有最终确定。
那到底什么是“自由线程Python”?我们熟悉的传统Python,由于全局解释器锁(Global Interpreter Lock,简称GIL)的存在,即使在多线程环境下,Python代码实际上也只能在单线程上执行。GIL的本意是为了避免多线程并发时的冲突,却也大幅限制了多线程环境下Python的执行效率。
而自由线程版本则彻底摆脱了GIL的约束,允许Python代码在多个线程中并行运行。这一想法早已在一些实验性分支如nogil和filectomy中有所尝试,并获得积极反馈。
近期,开发者Basile Marchand对Python 3.14 beta 2进行了基准性能测试,特别关注了加入:
--disable-gil
这一标志后的效果。结果不出所料,多线程性能大幅提升:
-
GIL开启:1.97秒
-
GIL关闭:0.56秒
结果表明,关闭GIL后的多线程版本在许多场景下的性能甚至能达到原版的数倍之多。
此外,开发者Julian Schrittwieser也对Python 3.13的无GIL版本进行了测试,他表示:
总体来说,如果线程之间几乎没有共享状态或同步需求,去掉GIL绝对是一个巨大的性能提升。我迫不及待地想在项目中尝试它。不过,在多线程环境下操作共享数据结构时,还需要格外小心。
前端AI·探索:涵盖动效、React Hooks、Vue 技巧、LLM 应用、Python 脚本等专栏,案例驱动实战学习,点击二维码了解更多详情。

最后:
更多推荐


所有评论(0)