Zen of Python

@zen_of_python
Видео Почему Python наконец-то убирает GIL GIL — Global Interpreter Lock — один глобальный мьютекс на весь интерпретатор CPython. Любой поток, который хочет выполнить Python-код, должен сначала захватить этот lock. Один lock = только один поток работает в любой момент времени. ​ ➡️ Почему так сделали В 1991 году, когда появился Python, многоядерных CPU практически не было. Потоки добавили в язык в середине 90-х, и вместо того чтобы защищать каждую внутреннюю структуру интерпретатора отдельным мьютексом — поставили один глобальный. Проще, быстрее, работает. ​ «Нам казалось, что мы нормально разобрались с потоками. Многоядерных процессоров тогда всё равно ни у кого не было» — Гвидо ван Россум ​ ➡️ Когда это стало проблемой Середина 2000-х: производители чипов упёрлись в потолок частоты и начали наращивать ядра. Внезапно concurrency без parallelism — это ограничение, а не фича. ​ ➡️ Что меняется Спустя 30+ лет процесс удаления GIL наконец запущен. Python сможет выполнять потоки параллельно. Кстати, если хочется parallelism прямо сейчас — можно использовать альтернативные интерпретаторы (например, на Rust), которые уже масштабируются на все ядра. 📎 Видео в посте или на YT @zen_of_python
Если у вас установлено приложение,
вы можете сразу перейти в канал