Встречается на собеседованиях • сегодня
В чем разница между блокирующим и неблокирующим ввод-выводом
Блокирующий I/O приостанавливает выполнение программы до завершения операции (например, чтение файла или сетевого запроса). Неблокирующий I/O позволяет программе продолжать работу, а результат операции обрабатывается асинхронно.
Пример блокирующего кода:
python
with open('file.txt', 'r') as f:
data = f.read() # Программа ждет здесь
print(data)Пример неблокирующего кода с asyncio:
python
import asyncio
async def read_file():
with open('file.txt', 'r') as f:
data = await loop.run_in_executor(None, f.read)
print(data)
loop = asyncio.get_event_loop()
loop.run_until_complete(read_file())Ключевые отличия:
- Блокирующий I/O прост в реализации, но неэффективен для множества операций
- Неблокирующий требует более сложной архитектуры (event loop, коллбэки), но масштабируется лучше
- В Python для неблокирующего I/O используют asyncio, threading или multiprocessing

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