Встречается на собеседованиях • сегодня

Какие ограничения накладывает GIL

GIL (Global Interpreter Lock) в CPython ограничивает параллельное выполнение Python-кода в нескольких потоках. Основные ограничения:

  1. Одновременное выполнение только одного потока - GIL позволяет выполнять только один поток Python за раз, даже на многоядерных процессорах.

  2. Неэффективность CPU-интенсивных задач - для CPU-зависимых операций многопоточность не даёт прироста производительности.

  1. Проблемы с долгими операциями - если один поток выполняет долгую операцию (например, вычисления), другие потоки блокируются.

Пример:

python
import threading

def count():
    n = 0
    while n < 100000000:
        n += 1

# Два потока выполняются последовательно из-за GIL
t1 = threading.Thread(target=count)
t2 = threading.Thread(target=count)
t1.start(); t2.start()
t1.join(); t2.join()

Обходные пути:

  • Использование процессов вместо потоков (модуль multiprocessing)
  • Вынос CPU-интенсивных задач в C-расширения
  • Использование async/await для I/O-bound задач
  • Альтернативные реализации Python (Jython, IronPython) без GIL
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы