Что такое GIL (Global Interpreter Lock) и как он влияет на многопоточность?
Уровень: Middle
Ответ
GIL – это “глобальная блокировка интерпретатора” в CPython. Он гарантирует, что в каждый момент времени байт-код исполняет только один поток, даже если у программы несколько потоков. Это упрощает управление памятью, но мешает параллельному выполнению CPU-нагруженных задач на нескольких потоках – они будут поочерёдно получать управление. Из-за GIL многопоточность в CPython не увеличивает производительность на нескольких ядрах CPU (для вычислительных задач лучше использовать multiprocessing или освобождать GIL в C расширениях).