Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: async, parallelism

В чем заключается отличие асинхронности от параллельности?

Этот вопрос проверяет понимание различий между способами выполнения задач: по очереди, параллельно и асинхронно.

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

Асинхронность — это умение переключаться между задачами без блокировки, пока одна из них ждёт ввода-вывода. Параллельность — это одновременное выполнение задач на разных ядрах. Асинхронный код не обязательно работает одновременно, но выполняется эффективно за счёт неблокирующих операций. Параллельность нужна для CPU-нагрузки, асинхронность — для I/O.

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

Определения

Асинхронность — модель выполнения, при которой задача может быть приостановлена во время ожидания и управление передается другой задаче.
Параллельность — одновременное выполнение нескольких задач на разных процессорных ядрах.

Асинхронность

Применяется, когда программа много ждёт: сетевые запросы, работа с файлами, таймеры.
Главное преимущество — отсутствие блокировок.

  1. Характеристики:

    • Использует один поток (обычно).

    • Переключение задач через event loop.

    • Идеальна для большого числа I/O операций.

  2. Пример:

import asyncio

async def fetch():
    await asyncio.sleep(1)  # имитация I/O
    return 42

Параллельность

Подходит для задач, активно загружающих CPU.

  1. Характеристики:

    • Использует несколько потоков или процессов.

    • Выполнение действительно одновременно.

    • Требует синхронизацию данных.

  2. Пример:

from concurrent.futures import ProcessPoolExecutor

def calc(x):
    return x * x

with ProcessPoolExecutor() as pool:
    result = pool.map(calc, range(10))

Основное отличие

  • Асинхронность → переключение между задачами в рамках одного потока.

  • Параллельность → одновременная работа на нескольких ядрах.

  • Асинхронность экономит время ожидания; параллельность ускоряет расчёты.

Вывод

Используйте асинхронность для сетевого ввода-вывода, параллельность — для CPU-интенсивных операций.

  • Аватар

    Python Guru

    Sergey Filichkin

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • Python

    Python

  • Networks

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

#async

#parallelism

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

  • Аватар

    Python Guru

    Sergey Filichkin

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