Лекция Python 1.4 GIL
Влияние GIL на различные модели параллелизма, асинхронность, многопоточность и многопроцессорность в Python
GIL (Global Interpreter Lock) — это механизм глобальной блокировки интерпретатора, который был введен для поддержки многопоточных программ в Python. Python не является полностью потокобезопасным, и потоки были добавлены в язык позже. GIL удерживает текущий поток до тех пор, пока он не сможет безопасно получить доступ к объектам Python. Это обеспечивает взаимное исключение, позволяя интерпретатору исполнять код только одного потока в любой момент времени. Разработчики, работающие с однопоточными программами, обычно не замечают влияния GIL на их работу...
Как проще всего избежать ограничений GIL?
Статья подготовлена для студентов курса «Разработчик Python» в образовательном проекте OTUS.
Многие из вас знают, что в Python есть GIL – Global Interpreter Lock, тот самый, который не даёт запускать несколько потоков и нагружать ядра процессора. Отчасти это так, но за GIL в Python скрывается очень много всего. И вот несколько фактов о нём: Рассмотрим один из самых очевидных способов избежать ограничений GIL’а при выполнении CPU-intensive задач. Модуль multiprocessing Запускай по процессу на ядро и вперёд! К сожалению, очевидный способ не значит, что простой...