PEP 703 — это предложение сделать Global Interpreter Lock (GIL) опциональным в CPython. GIL — это внутренний механизм, который предотвращает одновременное выполнение Python bytecode несколькими потоками, что исторически ограничивало настоящий параллелизм.
Python 3.13 представил экспериментальную сборку без GIL, также называемую no-GIL mode. Ключевые моменты:
--disable-gilmultiprocessing, чтобы обойти ограничения GILВ стандартном CPython потоки полезны в основном для I/O-bound задач, потому что GIL не даёт выполнять их параллельно на CPU. С free-threaded mode:
threading теперь может достичь настоящей параллельной производительностиimport threading
def compute():
# CPU-bound работа теперь выполняется в настоящем параллелизме
pass
Это важный момент. C extensions должны явно объявить поддержку free-threaded mode через:
Py_TPFLAGS_BASETYPE
numpy активно работают над совместимостьюPy_mod_gil в определении модуляPEP 703 пока экспериментальна в Python 3.13. Разработчикам не стоит использовать это в продакшене, но это значительный шаг к устранению одного из самых давних ограничений параллелизма в Python.
Режим free-threaded из PEP 703 в Python 3.13 включён по умолчанию при установке CPython и не требует никакой дополнительной конфигурации для активации.
Новый — ещё не проверен сообществом
Вы