Python即将迎来了真正的多线程时刻

Python的最新版本Python3.12将引入Per-InterpreterGIL,允许每个子解释器独立运行,提升并发性能。目前此特性只能通过C-API使用,未来可能在Python3.13中提供直接接口。开发者可以通过子解释器和CPython测试模块来利用这一功能,以优化程序的并发处理能力。
摘要由CSDN通过智能技术生成

近日,IBM工程师Martin Heinz发文表示Python即将迎来了真正的多线程时刻!并且在即将发布的Python 3.12中引入了名为"Per-Interpreter GIL"(全局解释器锁)的新特性。据悉,这项新特性将会在2023年10月发布。

Python语言在32岁之后仍然没有真正的并行性/并发性。然而,这种情况即将发生改变。在Python中,GIL是一个互斥锁,它只允许一个线程控制Python解释器。这意味着即使在Python中创建多个线程,也只有一个线程会运行。但随着“Per-Interpreter GIL”的引入,各个Python解释器不再共享同一个GIL。这种隔离级别允许每个子解释器可以同时运行。这意味着我们可以通过生成额外的子解释器来绕过Python的并发限制,其中每个子解释器都有自己的GIL(全局状态)。

为使用这项最新功能,我们必须安装最新版的Python,并且需要从源码上进行构建。目前,Per-Interpreter GIL特性只能通过C-API使用,因此Python开发人员没有直接的接口可以使用。这样的接口预计将随着PEP 554一起推出,如果被采纳,则应该会在Python 3.13中实现,在那之前,我们必须自己想办法实现子解释器。

可以使用_xxsubinterpreters模块或者利用CPython的测试模块,该模块具有用于测试的示例Interpreter(和Channel)类。通过CPython代码库中的一些零散记录,我们可以采用上述两种方法。现在,我们可以生成第一个子解释器并运行新解释器。

总的来说,Python的多线程即将迎来真正的发展时刻,这将会带来更好的并发性能。而开发者们也将有更多的选择来优化Python程序的并发性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值