Python 3.13: как устроен free-threading без GIL
Разбор технических изменений в CPython 3.13 с экспериментальной сборкой python3.13t (PEP 703), где GIL полностью отключён. Вместо одного глобального счётчика ссылок применены Biased Reference Counting, бессмертные объекты (PEP 683) и аллокатор mimalloc вместо pymalloc.
- Сборка python3.13t отключает GIL по PEP 703
- Biased Reference Counting делит счётчик на локальный и общий
- Бессмертные объекты (None, True, малые int) не меняют refcount
- pymalloc заменён на mimalloc с потоко-локальными аренами
Читать дальше
Безопасность