Member-only story
Python Is Going Free-Threaded: The End of the GIL Is Near in Python 3.14
How the time passes. It was March 2024 when I’ve reported Python is moving towards being multithreaded, and we have some new news in this subject.
The Python 3.14 final version is expected to be released in just three months around 2025–10–07. One of the highlights of this release will be PEP 779 “Criteria for supported status for free-threaded Python” by Thomas Wouters, Matt Page and Sam Gross. From the PEP we can learn there’s a lot of benefits to free-threaded Python compared to single-treaded one. Already a lot of libraries support free-threaded Python.
We need to move further, but it’s still not decided if free-treaded version will be a default one or separate one.
So what is “free-threaded Python”? The original version of Python contains GIL (Global Interpreter Lock) that locks Python to be executed on one thread, and prevents a situation when even a multithreaded system would use multiple threads to executed Python.
Free-threaded Python changes that by dropping GIL and allowing parallel execution in threads. Something that was already experimented in filectomy and nogil forks.
An interesting benchmark was released by Basile Marchand who tested:
--disable-gil