Вопрос проверяет понимание того, в каких ситуациях Python-потоки могут реально переключаться и не блокировать друг друга.
Короткий ответ
GIL освобождается во время блокирующих I/O-операций, таких как чтение из сети, работа с файлами или ожидание таймера. В этих случаях поток приостанавливается, и другой поток может продолжить выполнение. Также GIL может освобождаться в нативном коде, если он явно это делает. Чистые вычисления в Python GIL не освобождают.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.