Встречается на собеседованиях • сегодня
Как связаны GIL, многопоточность и вытесняющая многозадачность
GIL (Global Interpreter Lock) в Python — это мьютекс, который защищает доступ к объектам Python, предотвращая параллельное выполнение байткода в нескольких потоках. Это означает, что даже в многопоточной программе только один поток активно выполняет Python-код в любой момент времени.
Многопоточность в Python работает, но из-за GIL потоки выполняются не параллельно, а псевдопараллельно (через переключение контекста). Это вытесняющая многозадачность на уровне интерпретатора, но не на уровне процессора.
Пример с I/O-bound задачей (GIL не мешает, так как потоки освобождают его во время ожидания):
python
import threading
import time
def task():
time.sleep(1) # I/O операция
threads = [threading.Thread(target=task) for _ in range(5)]
for t in threads:
t.start()
for t in threads:
t.join()Для CPU-bound задач лучше использовать multiprocessing, так как процессы имеют отдельные GIL.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы