Встречается на собеседованиях • сегодня
Почему GIL не блокирует I/O bound задачи
GIL (Global Interpreter Lock) в Python блокирует выполнение только CPU-bound задач, так как он защищает доступ к внутренним структурам интерпретатора. Однако при выполнении I/O-bound операций (чтение/запись файлов, сетевые запросы и т.д.) поток освобождает GIL, позволяя другим потокам работать параллельно. Это происходит потому, что I/O операции выполняются на уровне ОС и не требуют активного участия интерпретатора Python.
Пример:
python
import threading
import time
def io_task():
print("Начало I/O операции")
time.sleep(2) # Имитация I/O операции
print("Завершение I/O операции")
threads = []
for _ in range(3):
t = threading.Thread(target=io_task)
threads.append(t)
t.start()
for t in threads:
t.join()Здесь потоки выполняют time.sleep() (аналог I/O), освобождая GIL, что позволяет им работать "параллельно".

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