This is a proof-of-concept implementation of CPython that supports multithreading without the global interpreter lock (GIL). An overview of the design is described in the Python Multithreading without GIL Google doc.
The proof-of-concept works best on Linux x86-64. It also builds on Linux ARM64, Windows (64-bit), and macOS, but you will have to recompile extension modules yourself for these platforms. The build process has not changed from upstream CPython.
The proof-of-concept comes with a modified bundled "pip" that includes an alternative package index. The alternative package index includes C extensions that are either slow to build from source or require some modifications for compatibility.
The GIL is disabled by default, but if you wish, you can enable it at runtime using the environment variable PYTHONGIL=1
. You can use the existing Python APIs, such as the threading module and the ThreadPoolExecutor class.
Still maintained and under development - tracks v3.9.x!