Встречается на собеседованиях • сегодня
Когда GIL отдаёт управление
GIL (Global Interpreter Lock) в CPython освобождается в нескольких случаях:
- I/O операции – при выполнении операций ввода/вывода (чтение файлов, сетевые запросы и т.д.)
- Системные вызовы – когда поток выполняет системный вызов (например,
time.sleep()) - Число выполненных инструкций – после выполнения определённого количества байт-код инструкций (по умолчанию 100, можно изменить через
sys.setswitchinterval())
Пример с time.sleep():
python
import threading
import time
def worker():
print("Thread started")
time.sleep(1) # Здесь GIL освобождается
print("Thread finished")
t = threading.Thread(target=worker)
t.start()
t.join()Важно: GIL не освобождается при чисто вычислительных операциях, что ограничивает параллелизм CPU-bound задач. Для их распараллеливания лучше использовать multiprocessing.

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