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

Какую проблему решает GIL

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

Основные моменты:

  • Безопасность памяти: GIL защищает структуры данных интерпретатора от гонки (race conditions).
  • Упрощение кода: Избегает сложной синхронизации в низкоуровневых операциях (например, подсчет ссылок).

Недостатки:

  • Многопоточные CPU-задачи не ускоряются (потоки выполняются поочередно).

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

  • Мультипроцессинг: Запуск нескольких процессов (multiprocessing).
  • Асинхронность: Использование asyncio для I/O-bound задач.
python
import threading

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

# GIL делает это медленнее, чем последовательный запуск
t1 = threading.Thread(target=count)
t2 = threading.Thread(target=count)
t1.start(); t2.start()
t1.join(); t2.join()
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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