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

Для чего используется GIL в Python

GIL (Global Interpreter Lock) — это механизм в CPython, который предотвращает одновременное выполнение нескольких потоков нативным кодом. Он нужен для:

  1. Потокобезопасности — защищает внутренние структуры данных интерпретатора от гонки (race conditions).
  2. Упрощения управления памятью — счетчик ссылок в Python требует атомарных операций.

Минусы:

  • Многопоточные CPU-задачи выполняются последовательно.

Пример:

python
import threading

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

# Запуск в одном потоке ≈ быстрее, чем в двух из-за GIL
thread1 = threading.Thread(target=count)
thread2 = threading.Thread(target=count)
thread1.start(); thread2.start()
thread1.join(); thread2.join()

Обход: Для параллелизма используют multiprocessing или асинхронность (asyncio).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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