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

На каком уровне работает GIL приложения или интерпретатора

GIL (Global Interpreter Lock) работает на уровне интерпретатора Python, а не приложения. Это механизм, встроенный в сам интерпретатор CPython, который предотвращает параллельное выполнение байт-кода Python несколькими потоками в одном процессе.

Пример:

python
import threading

def count():
    n = 0
    for _ in range(1_000_000):
        n += 1

threads = [threading.Thread(target=count) for _ in range(4)]
for t in threads:
    t.start()
for t in threads:
    t.join()

Несмотря на 4 потока, из-за GIL они выполнятся последовательно, а не параллельно.

Нюансы:

  • GIL не мешает параллельному выполнению в нескольких процессах (multiprocessing).
  • Внешние библиотеки (на C, например numpy) могут освобождать GIL для реального параллелизма.
  • Альтернативные реализации Python (Jython, IronPython) могут не иметь GIL.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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