gh-99113: A Per-Interpreter GIL! by ericsnowcurrently · Pull Request #104209 · python/cpython
This is the culmination of PEP 684 (and of my 8-year long multi-core Python project)!
Each subinterpreter may now be created with its own GIL (via Py_NewInterpreterFromConfig()). If not so configured then the interpreter will share with the main interpreter--the status quo since the subinterpreters were added decades ago. The main interpreter always has its own GIL and subinterpreters from Py_NewInterpreter() will always share with the main interpreter.
(FYI, I've split up the original gh-99114 into multiple PRs, with this one being the final one in the chain.)