No-GIL заменяет глобальную защиту сочетанием локальных блокировок, безопасного управления ссылками и памятью. Biased Reference Counting и mimalloc решают разные части задачи, а не являются новым GIL.
Каким образом проект No-GIL (PEP 703) решает проблему потокобезопасности внутренних структур данных CPython без глобальной блокировки? Что такое Biased Reference Counting и Mimalloc и как они заменяют классический GIL?
No-GIL заменяет глобальную защиту сочетанием локальных блокировок, безопасного управления ссылками и памятью. Biased Reference Counting и mimalloc решают разные части задачи, а не являются новым GIL.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
No-GIL заменяет глобальную защиту сочетанием локальных блокировок, безопасного управления ссылками и памятью. Biased Reference Counting и mimalloc решают разные части задачи, а не являются новым GIL.
Biased Reference Counting разделяет учёт ссылок владельца и других потоков, уменьшая стоимость синхронизации. Mimalloc предоставляет подходящую многопоточную организацию памяти; изменения управления её повторным использованием помогают безопасному доступу к контейнерам. Дополнительно нужны блокировки объектов и согласование сборки мусора. Это защищает внутренности интерпретатора, но не делает составную бизнес-операцию пользователя автоматически атомарной.
Источник: peps.python.org.