这篇文章探讨了 Python GIL 的历史和演变,以及它如何影响 Python 的 C API 设计。作者通过个人经历,从 2005 年第一次接触 Python 并遇到 GIL 瓶颈开始,讲述了 GIL 对多线程性能的影响。文章深入解释了 PyInterpreterState 和 PyThreadState 的引入如何为 Python 的嵌入式状态铺平道路,以及多进程模块如何绕过 GIL 但存在进程间通信成本。作者还详细分析了 Python 3.12 中引入的 Py_NewInterpreterFromConfig API 如何允许创建具有独立 GIL 的子解释器,从而实现真正的多线程并行。