Python 3.13 introduces an optional GIL, allowing for improved performance in multithreading. There are concurrent efforts with PEP 703 for the optional GIL and PEP 684 for per-interpreter GIL in Python 3.12. The history of the GIL is explored, how it affects C API design, and steps taken at the C API level. Anecdotes from the author’s personal experience with game development using Pygame in 2005 highlight the impact of the GIL on performance. The release of Sid Meier’s Civilization V switching from Python to Lua is mentioned for improved performance. The article delves into the specifics of the GIL, Python’s evolution in handling threading, and the upcoming changes in Python 3.13 to address these issues.
https://izzys.casa/2024/08/463-python-interpreters/