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

Как правильно проектировать код с использованием асинхронных операций

Асинхронный код в Python проектируется с использованием async/await и библиотеки asyncio. Основные принципы:

  1. Используйте async def для асинхронных функций
  2. Вместо блокирующих вызовов используйте асинхронные аналоги (например, aiohttp вместо requests)
  3. Избегайте смешивания синхронного и асинхронного кода
  4. Для конкурентного выполнения задач используйте asyncio.gather()

Пример:

python
import asyncio
import aiohttp

async def fetch_url(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.text()

async def main():
    urls = ['http://example.com', 'http://example.org']
    tasks = [fetch_url(url) for url in urls]
    results = await asyncio.gather(*tasks)
    print(results)

asyncio.run(main())

Ключевые моменты:

  • Не блокируйте event loop долгими синхронными операциями
  • Используйте специализированные async-библиотеки
  • Обрабатывайте ошибки через try/except внутри корутин
  • Для CPU-bound задач используйте asyncio.to_thread() или отдельные процессы
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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