Встречается на собеседованиях • сегодня
Что ты знаешь о GIL в Python
GIL (Global Interpreter Lock) — это механизм в CPython, который позволяет выполнять только один поток Python в один момент времени, даже на многоядерных системах. Он предотвращает конкурентное выполнение байт-кода, защищая внутренние структуры интерпретатора от состояний гонки.
Основные моменты:
- GIL упрощает реализацию CPython и делает его потокобезопасным.
- Многопоточность в Python не даёт реального ускорения на CPU-bound задачах.
- I/O-bound задачи могут выиграть от потоков, так как GIL освобождается во время операций ввода-вывода.
- Для параллельных вычислений лучше использовать
multiprocessingили внешние библиотеки (NumPy, Cython).
Пример:
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()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы