— «Python-разработчики, как правило, хорошо знают, что такое и для чего нужен GIL, вопросы по нему встречаются на большинстве собеседований, я и сам люблю их задавать. Но в CPython его скоро не будет. Да, core-разработчики CPython взяли курс на его удаление»
Держите интересную статью о том, как ведётся работа по ускорению CPython и удалению GIL.
Некоторые факты из статьи:
⏩GIL (Global Interpreter Lock) является главным препятствием для настоящего параллелизма на уровне потоков в Python.
⏩PEP 703 представил план внедрения флага компиляции
--disable-gil для отключения GIL.⏩Изменения в Python будут разделены на четыре категории: подсчет ссылок, управление памятью, потокобезопасность контейнеров и блокировки и атомарные API.
⏩Предлагаются различные техники для устранения недостатков GIL, включая раздельный подсчет ссылок, увековечивание и отложенный подсчет ссылок.
⏩Управление памятью будет изменено с использованием потокобезопасного аллокатора
Mimalloc.⏩Сборщик мусора потребует изменений для обеспечения гарантий, которые ранее предоставлялись GIL.
⏩Потокобезопасность контейнеров будет обеспечена введением мьютексов на уровне каждого контейнера.
⏩Предлагается введение новых функций, которые будут возвращать объекты с уже измененными счетчиками.
📎 Статья
@pythonl





