无 GIL 版 Python 已开放测试!

Python并发与性能革命:自由线程、JIT编译器的深度解析与未来展望 Python正经历重大性能变革,3.13版本引入自由线程突破GIL限制,使多核并行成为可能(计算密集型任务加速3倍),同时采用JIT编译器实现热点代码自动优化(数值计算提速133%)。未来版本将融合自由线程与JIT,支持GPU编译和更先进的并行模型。新特性还包括增强模式匹配、异步推导式和精细错误定位。建议科学计算优先3.13+版本,Web服务选择3.12异步优化,通过渐进式迁移拥抱Python的并行计算新时代。 阅读详情

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

Python 的全局解释器锁(GIL) 简化了语言引擎盖下的大量代码,但也导致了并行处理方面的一些问题。多年来,社区曾多次尝试移除 GIL。然而,在指导委员会去年接受 PEP 703 之前,没有一次成功。

PEP 703 描述了如何根据 Sam Gross 所做的实验工作移除 GIL。它建议通过构建选项激活现在所谓的自由线程 Python。这种自由线程(free-threaded) Python 预计将成为 CPython 的默认版本,但目前仅用于测试和实验。

当自由线程 Python 面向更多用户时,GIL 仍将默认启用。你可以通过设置环境变量或添加命令行选项来试用无 GIL 版 Python:

$ PYTHON_GIL=0 python
$ python -Xgil=0

这些选项现已纳入 CPython 的主分支。

2024 年 3 月,gh-116167 被实现并合并。

如果您想试用自由线程 Python,需要克隆并自行构建 CPython,并在 configure 中传递 --disable-gil 标志。

注意: 从 python.org 下载的官方预发布版本目前没有启用 --disable-gil 标记。如果你尝试在最新的 Python 3.13.0a5 上禁用 GIL,会得到以下消息:

$ python -Xgil=0
Fatal Python error: config_read_gil: PYTHON_GIL / -X gil are not supported by this build
Python runtime state: preinitialized

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

25ba560f2384b884cfa1d70c46c19271.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

python的GIL锁(非常详细) 在了解python异步IO的过程中,接触到了python的GIL锁,找了许多国内外的资料,阅读完后发现较于其他博客中的说法有了更深的一些了解,因此写了这篇博客来进行记录,本文中的部分内容引用自real python,感觉是讲得最好的一份资料。 https://realpython.com/python-gil/ 一、GIL锁简介 简而言之,Python全局解释器锁或GIL是一种互斥锁(或锁),仅允许一个线程持有Python解释器的控制权。 这意味着在任何时间点只能有一个线程处于执行状态。对于执行单线程程 阅读详情

相关推荐

GD32主程序跑飞?可能是BOOT0引脚惹的祸(附J-LINK调试实录)

本文针对GD32微控制器程序下载后无法运行的典型问题,深入剖析了BOOT0引脚配置对启动模式的关键影响。通过结合J-LINK调试器与KEIL MDK环境,详细演示了如何从程序跑飞现象(如PC指向0x1FFF Fxxx)定位到硬件层面的BOOT0引脚与VDD短路故障,并提供了系统的硬件排查步骤与设计预防建议。

d6e7f8的博客 704

Python线程讲解

每个线程一定会有一个名字,尽管上面的例子中没有指定线程对象的name,但是python会自动为线程指定一个名字。当线程的run()方法结束时该线程完成。无法控制线程调度程序,但可以通过别的方式来影响线程调度的方式。

Python编程学习的博客 1274

百条网络工程师基础面试题(不断更新)

1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型的层次是什么? 有 7 个 OSI 层:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。 3)什么是骨干网? 骨干网络是集中的基础设施,旨在将不同的路由和数据分发到各种网络。它还处理带宽管理和各种通道。 4)什么是 LAN? LAN 是局域网的缩写。它是指计算机与位于小物理位置的其他网络设备之间的连接。 5)什么是节点? 节点是指连接发生的点。它可以是作为网络一部分的计算机

weixin_42728126的博客 2万+

python3.13无GIL自由线程新特性

python3.13的自由线程开启python真并发编程新时代

yqq1997的博客 1682

告别手动抓信号!Synopsys AXI VIP的Port Monitor实战:5分钟搞定与Scoreboard的TLM连接

本文详细介绍了Synopsys AXI VIP的Port Monitor功能,帮助验证工程师快速实现与Scoreboard的TLM连接,5分钟内完成自动数据收集。通过实战指南和常见问题排查,提升验证效率,告别手动抓信号的繁琐流程。

weixin_30565327的博客 300

AI 编程新范式:一文彻底搞懂 LLM、Agent、MCP、Skill 是怎么协作的

本文用通俗易懂的方式解析了AI编程新架构的核心概念。通过"三国演义"类比,文章将复杂的技术架构拆解为:Agent(军师/大脑)负责思考和决策,Skill(招式/手脚)执行具体操作,MCP(令箭/协议)作为通信标准,MCP Server(将军/身体)承载多个Skill。这套分工架构使AI从单纯聊天进化成能完成实际编程任务的全能助手,实现了关注点分离——Agent专注智能提升,Skill专注功能实现,MCP确保稳定连接。这正是Cursor、Claude等新一代AI开发工具采用的核心架构,标志

猫老板的豆 3080

Python3.13 rc2 自由线程性能实验

如果你曾经尝试通过多线程提升Python的性能,那么你肯定遇到过一个老对手——(GIL)。这个讨人厌的小家伙会阻止Python线程真正实现并行运行。但是嘿!GIL已经是个老生常谈的话题了,如今,随着Python 3.13推出了实验性的NO-GIL(自由线程)版本,终于有机会动手试试看这到底意味着什么!正式版本预计在假期推出,现在目前是 RC2 版本。

Michael是个半路程序员 2484

PredFormer实战:用Transformer搞定交通流量预测(附TaxiBJ数据集代码)

本文详细介绍了如何利用PredFormer这一基于Transformer的先进模型进行交通流量预测,特别针对TaxiBJ数据集提供了完整的实战代码和优化策略。PredFormer通过门控Transformer块(GTB)的创新设计,在时空预测任务中展现出显著优势,相比传统方法将MSE降低33.1%,推理速度提升4.4倍。文章还涵盖了模型轻量化、部署优化等实用技巧,为智慧城市建设中的交通预测提供了高效解决方案。

weixin_29194817的博客 445

Python 3.14发布在即,你必须了解的自由线程迁移避坑指南

掌握Python 3.14自由线程实战技巧,轻松突破GIL限制提升并发性能。本文详解多线程爬虫、I/O密集任务等场景下的迁移策略与兼容性处理,涵盖核心API变化与性能优化方法。规避常见陷阱,平稳升级代码,值得收藏。

simcode的专栏 761

论文阅读笔记--Grid Anchor based Image Cropping: A New Benchmark and An Efficient Model

基于网格锚的图片裁剪:一种新的标准和高效的模型摘要1.介绍2.相关工作2.1 图像裁剪数据集和评估指标 摘要 图像裁剪的目的是通过去除图像中无关的内容来改善图像的组成和美学质量。现有的图像裁剪数据库大多只提供一个或多个人工标注的边界框作为基准,难以反映实际中图像裁剪的非唯一性和灵活性。 采用IoU等评价指标也不能可靠地反映裁剪模型的真实性能。本文回顾了图像裁剪的问题,并通过考虑图像裁剪的特殊特性和要求(如局部冗余、内容保存、高宽比),提出了基于网格锚的公式。 我们的公式将候选裁剪窗口的搜索空间从数百万减少到

qq_22565865的博客 2948

SuccessFactors入门篇

SuccessFactors入门篇—— Employee Central(一)最近通过一个月左右的学习,拿到了SF EC(SuccessFactors Employee Central )模块SAP认证,所以打算把自己学习SF的整个过程以及相关资料和大家分享一下,相互切磋,共同进步。Employee Central简单了解Employee Central简单了解新的改变功能快捷键合理的创建标题,有...

qq_42288853的博客 1万+

Python 将移除 GIL!

支持真正并行的 Python 终于要来了。近日,外媒 infoworld 全面剖析了无 GIL 的 Python 是怎么实现的。原文地址:https://www.infoworld.com/article/3704248/python-moves-to-remove-the-gil-and-boost-concurrency.html翻译| 苏宓出品 | 优快云(ID:优快云news)经过反...

优快云资讯 6361

Qt 【window udp 高频采集丢包问题】

使用Asio + 无锁队列或者环形缓存区方案可以解决 qt udp 在window平台高速采集 (128k)丢包问题。

weixin_45397344的博客 177

python中的GIL详解

python中的GIL详解 GIL是什么 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样一段代码可以通过CPython,PyPy,Psyco等不同的Python执行环境来执行。像其中的JPython就没有GIL。然而因为CPython是大部分环境下默认的Python执行

qq_33934427的博客 3076

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

2024年最全python中的GIL详解_gil数据

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

2401_84584763的博客 1576

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

python中的GIL详解_gil数据

于是有了GIL这把超级大锁,而当越来越多的代码库开发者接受了这种设定后,他们开始大量依赖这种特性(即默认python内部对象是thread-safe的,无需在实现时考虑额外的内存锁和同步操作)。只是顺序的执行两次,模拟单线程。为了更有效的利用多核处理器的性能,就出现了多线程的编程方式,而随之带来的就是线程间数据一致性和状态同步的困难。但是无法改变的是GIL的存在使得操作系统线程调度的这个本来就昂贵的操作变得更奢侈了。按照之前的分析,即使是有GIL全局锁的存在,串行化的多线程也应该和单线程有一样的效率才对。

2501_90425046的博客 1385

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Python-GIL详解

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net Definition Represent an operation to be performed on the elements of an object structure. Visitor lets you define a new ope...

了解➔熟悉➔掌握➔精通 6万+

python中的GIL详解_gil数据(1)

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取。

2401_84615085的博客 880

Python 并发之GIL的限制

Python 并发之GIL的限制 GIL简介 我们首先要清楚的是GIL并不是Python的特性,它是实现Python解释器(CPython)时所引入的一个概念。 GIL并不是Python的特性,Python完全可以不依赖于GIL,GIL是一个防止解释器多线程并发执行机器码的一个全局互斥锁。其存在主要是因为在代码执行过程中,CPython的内存管理不是线程安全的。 为什么会有GIL 为了利用多核,P...

Rp的博客 1864

深入理解 Python GIL

全局解释器锁(GIL)是一个互斥锁(mutual exclusion lock),用于保护对 Python 对象的访问,防止多个线程同时执行 Python 字节码。简单来说,GIL 确保在任何时刻只有一个线程在 Python 解释器中运行。

YJ博客 875

python GIL

GIL是什么 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样一段代码可以通过CPython,PyPy,Psyco等不同的Python执行环境来执行。像其中的...

MISAYAONE的博客 327

并发性能提升 200%+ !Python no-GIL 实验版本性能实测

全局解释器锁(Global Interpreter Lock,简称 GIL)的单进程互斥,使得 Python 并发仅能获得近似单线程的效果,好消息是,`3.13t-dev` 作为 no-GIL 实验版本已具备较强的可测试性,下文将对其性能进行对比。

[SZU_Crayon] 1550

Python 有可能删除 GIL 吗?

我们知道,在 CPython 中,有一个全局解释器锁,英文叫 global interpreter lock,简称 GIL,是一个互斥锁,用来保护 Python 世界里的对象,防止同一时刻...

somenzz的博客 1004

Python GIL

Python的GIL是什么鬼,多线程性能究竟如何 转载作者:卢钧轶(cenalulu) 本文原文地址:http://cenalulu.github.io/python/gil-in-python/ GIL是什么 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来...

showgea的博客 410
上一篇: xz 后门的作者 Jia Tan 是谁?
下一篇: 这部经典之作,时隔六年迎来重磅升级!
codingpy
博客等级 码龄11年 1870粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值