Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: asyncio, concurrency, parallel

Какими способами можно параллельно запустить две задачи в асинхронном коде?

Этот вопрос проверяет знание способов параллельного выполнения задач в асинхронном Python-коде.

Короткий ответ

В асинхронном коде можно использовать asyncio.gather() для параллельного запуска корутин, asyncio.create_task() для фоновых задач или asyncio.wait() с разными стратегиями ожидания. Также можно использовать aiohttp для параллельных HTTP-запросов.

Длинный ответ

1. Основные методы параллельного выполнения

  1. asyncio.gather()
    Запускает несколько корутин параллельно и ждёт завершения всех:

    async def task1(): ...
    async def task2(): ...
    
    results = await asyncio.gather(task1(), task2())
  2. asyncio.create_task()
    Запускает корутину как фоновую задачу:

    task = asyncio.create_task(task1())
    await task2()  # Выполняется параллельно с task1
    await task
  3. asyncio.wait()

    done, pending = await asyncio.wait(
        [task1(), task2()],
        return_when=asyncio.FIRST_COMPLETED
    )

2. Пример с HTTP-запросами

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

async def main():
    google, yahoo = await asyncio.gather(
        fetch('https://google.com'),
        fetch('https://yahoo.com')
    )

Когда использовать:

  • gather: когда нужно выполнить несколько задач и дождаться всех результатов

  • create_task: для фоновых задач, которые могут выполняться долго

  • wait: когда нужен контроль над выполнением (например, FIRST_COMPLETED)

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Python

    Python

Ключевые слова

#asyncio

#concurrency

#parallel

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.