Почему Python наконец-то убирает GIL — video, channel “Zen of Python” ▶ video

Почему 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
Views: 28
Open in MAX Report an inaccuracy

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go