Встречается на собеседованиях • сегодня

Зачем использовать асинхронность для I/O bound операций

Асинхронность позволяет эффективно выполнять I/O bound операции (сеть, файлы, БД), избегая простоев. Вместо блокировки потока на время ожидания, код передаёт управление другим задачам. Это особенно полезно в веб-серверах, где много одновременных запросов.

Пример с asyncio:

python
import asyncio

async def fetch_data(url):
    print(f"Загрузка {url}")
    await asyncio.sleep(2)  # Имитация I/O операции
    return f"Данные с {url}"

async def main():
    tasks = [fetch_data(f"site{i}.com") for i in range(3)]
    results = await asyncio.gather(*tasks)
    print(results)

asyncio.run(main())

Ключевые преимущества:

  • Экономия ресурсов (1 поток вместо многих)
  • Масштабируемость (тысячи одновременных соединений)
  • Читаемость кода (явное указание точек ожидания)

Синхронный код блокировал бы поток на каждом запросе, а асинхронный выполняет их конкурентно.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы