Python 3.13 Free-Threading: How CPython Works Without the GIL
A technical breakdown of CPython 3.13's experimental free-threaded build (python3.13t, PEP 703), which fully disables the GIL. It replaces the single global refcount with Biased Reference Counting, immortal objects (PEP 683) and Microsoft's mimalloc allocator instead of pymalloc.
- python3.13t build disables the GIL per PEP 703
- Biased Reference Counting splits local and shared refcounts
- Immortal objects (None, True, small ints) skip refcount writes
- pymalloc replaced by mimalloc with thread-local heaps
Read next
Gadgets