赞
踩
近日,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程序的并发性能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。