DEV Community

TildAlice
TildAlice

Posted on • Originally published at tildalice.io

Python 3.13 Free-Threading: Real Parallel CPU Performance

The GIL Is Finally Optional (And It Actually Works)

Python 3.13 shipped with something I didn't think I'd see: a build flag that disables the Global Interpreter Lock entirely. Not subinterpreters with isolated GILs, not multiprocessing workarounds—actual free-threaded execution where multiple threads can run Python bytecode simultaneously on different cores.

I'm skeptical by default when it comes to performance claims. But after running CPU-bound workloads on the python3.13t free-threaded build, I'll say this: if you're doing numeric computation, image processing, or data transformation in pure Python, this changes the game.

A person reads 'Python for Unix and Linux System Administration' indoors.

Photo by Christina Morillo on Pexels

What Free-Threading Actually Means

The GIL (Global Interpreter Lock) has been Python's concurrency bottleneck since the beginning. It's a mutex that protects access to Python objects, ensuring only one thread executes Python bytecode at a time. This made CPython's memory management simple and safe, but it also meant threading was useless for CPU-bound work.


Continue reading the full article on TildAlice

Top comments (0)