开发者验证移除 CPython GIL 可行,可显著提高多线程性能
一位名叫 Sam Gross的开发者提出了一个对全局解释器锁(GIL)进行重大修改的设想。其目标在于移除 CPython 中的 GIL,以使得多线程能够并行执行 Python 代码。目前,该项目已经引起了 Python 核心开发团队的关注。 我一直在对 CPython 进行修改,使其能够在没有全局解释器锁的情况下运行。我想与大家分享一个可以在没有 GIL 的情况下运行的概念验证。这个概念验证涉及到对 CPython 内部的大量修改,但对 C-API 的修改相对较少。它可以与许多 C 语言扩展兼容:扩展必须被重建,但通常只需要对源代码进行较小的修改或不需要修改。我已经从科学的 Python 生态系统中构建了兼容的软件包版本,它们可以通过捆绑的"pip"来安装。 Gross 在设计文档中详细列举了移除GIL 需要承担的一些风险以及他认为要移除 GIL 的理由: 风险 移除 GIL 将是一项大型、多年的任务,引入错误和回归的风险会增加。 移除 GIL 意味着在单线程和多线程性能之间进行权衡。“我相信 - 我们可以创建一个没有 GIL 的 CPython,它在单线程和多线程工作负载方面都比当前...
