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

От чего защищает GIL

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

Основные защиты GIL:

  1. Безопасность памяти — предотвращает race conditions при работе с объектами Python, так как только один поток может выполнять Python-код в любой момент.
  2. Упрощение реализации — делает CPython проще, так как не требует сложной синхронизации для управления внутренними структурами.

Пример проблемы без GIL:

python
import threading

counter = 0

def increment():
    global counter
    for _ in range(100000):
        counter += 1

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

print(counter)  # Может быть меньше 200000 из-за race condition

Недостаток: GIL ограничивает параллелизм в CPU-задачах, но не мешает I/O-операциям. Для истинного параллелизма используют процессы (multiprocessing) или альтернативные интерпретаторы (например, Jython, IronPython).

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

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

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

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