Как под капотом устроены расширения на C (C Extensions) и почему они мешают внедрению No-GIL?

C-расширение работает через Python C API и может обращаться к памяти объектов и собственному глобальному состоянию. Историческая опора на GIL делает переход к свободным потокам нетривиальным.

Короткий ответ

Что ответить на собеседовании

C-расширение работает через Python C API и может обращаться к памяти объектов и собственному глобальному состоянию. Историческая опора на GIL делает переход к свободным потокам нетривиальным.

Подробный разбор

Ответ с пояснениями

C-расширение работает через Python C API и может обращаться к памяти объектов и собственному глобальному состоянию. Историческая опора на GIL делает переход к свободным потокам нетривиальным.

Нужно проверить конкурентный доступ к нативным кешам, счётчикам и структурам, безопасное получение ссылок и обход контейнеров. Отсутствие явных Python-потоков в коде расширения не доказывает его безопасность. Для free-threaded сборки расширение объявляет поддержку соответствующим API, но такое объявление не заменяет аудит и синхронизацию. Несовместимое расширение может привести к включению GIL. Поэтому задача не сводится к одной правке интерпретатора: экосистема библиотек должна соблюдать новые требования.

Источник: docs.python.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее