详细内容或原文请订阅后点击阅览
Python 3.14 和 GIL 的终结
探索无 GIL Python 的机遇和挑战Python 3.14 后和 GIL 的终结首先出现在《走向数据科学》上。
来源:走向数据科学终于来了。原因是此版本中实现了一些令人兴奋的增强功能,包括:
子解释器。这些工具在 Python 中已经存在了 20 年,但要使用它们,您必须直接使用 C 语言进行编码。现在它们可以直接从 Python 本身使用。
子解释器T 形字符串。模板字符串是自定义字符串处理的一种新方法。它们使用熟悉的 f 字符串语法,但与 f 字符串不同,它们返回一个表示字符串的静态部分和插值部分的对象,而不是简单的字符串。
T 形字符串即时编译器。这仍然是一个实验性功能,不应该在生产系统中使用;然而,它承诺提高特定用例的性能。
即时编译器。Python 3.14 中还有更多增强功能,但本文不是讨论这些增强功能或我们上面提到的增强功能。
相反,我们将讨论此版本中最受期待的功能:自由线程 Python,也称为无 GIL Python。请注意,常规 Python 3.14 仍将在启用 GIL 的情况下运行,但您可以下载(或构建)单独的自由线程版本。我将向您展示如何下载和安装它,并通过几个编码示例来演示常规 Python 3.14 和无 GIL Python 3.14 之间的运行时间比较。
什么是 GIL?
你们中的许多人都会知道 Python 中的全局解释器锁 (GIL)。 GIL 是一种互斥体(一种锁定机制),用于同步对资源的访问,在 Python 中,确保一次只有一个线程正在执行字节码。
一方面,这有几个优点,包括更容易执行线程和内存管理、避免竞争条件以及将 Python 与 C/C++ 库集成。
为什么这很重要
简而言之,“性能”。
“性能”。Python 中的许多流行库都面临着限制,因为它们必须围绕 GIL 进行工作。删除它可能会导致:-
