PEP 779 promoted the no-GIL build from experimental to officially supported in 3.14. It is still opt-in, and making it the default is a later phase.
Aditya Challa3 min read
No. Python 3.14 makes the free-threaded (no-GIL) build officially supported, but it is still a separate, optional build, and standard CPython keeps the global interpreter lock.
PEP 779 sets out the plan. Phase I began during Python 3.13 development and made the free-threaded build available but explicitly experimental. Phase II makes it officially supported but still optional. Python 3.14's What's New lists this as "PEP 779: Free-threaded Python is officially supported." Phase III would make free-threading the default build. Each step needs its own decision once the costs and benefits are clearer.
According to What's New, the PEP 703 implementation is finished in 3.14, including the C API changes, and free-threaded mode is "significantly improved" compared with 3.13. The Steering Council accepted PEP 779 with a list of requirements to address during phase II.
A free-threaded build can run with the GIL enabled through the PYTHON_GIL environment variable or -X gil. It also turns the GIL back on automatically, with a warning, when you import a C extension that isn't marked as free-threading safe. One unported dependency can therefore cancel the benefit. The HOWTO also warns that sharing one iterator between threads isn't thread-safe.
Try it in CI for CPU-bound, thread-heavy workloads whose dependencies publish free-threaded wheels. For I/O-bound services, asyncio or the default build is usually enough. See our asyncio gather vs TaskGroup lab and process vs thread pool comparison.
Not from the default build. The GIL-free build is officially supported in 3.14 but optional.
For single-threaded code, slightly: about 1% to 8% on average, depending on platform, according to the official HOWTO.
That is PEP 779's phase III. No version has been set for it yet.
Lab evidence
Read Python 3.14's What's New, PEP 779 and the official free-threading HOWTO on 10 Oct 2026, and rechecked that all three pages load on 11 Oct 2026. The overhead and memory figures are quoted from those documents, not our own benchmarks. We did not install or benchmark a free-threaded build for this post, and the GIL-check commands are documented calls, not output we captured.
Explore the product
Untested by us. Check what's included, the license and refund terms before you buy.
Insertion order is a language guarantee, not an implementation accident.
Summary12 Oct 20261 min read
Five years after 3.10.0 shipped, CPython 3.10 stopped getting security fixes. If 3.10 is still running in production, here is what changes and where to move next.
Summary10 Oct 20263 min read
Summary1 Oct 20264 min read