Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

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

Какие способы конкурентного выполнения программ существуют в Python?

Этот вопрос проверяет знание основных подходов к параллельному и асинхронному выполнению кода в Python.

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

В Python есть три основных способа:

  1. Многопоточность (threading) — легковесные потоки внутри одного процесса (но из-за GIL не подходит для CPU-задач).

  2. Многопроцессорность (multiprocessing) — параллельное выполнение в отдельных процессах (обходит GIL, но требует больше ресурсов).

  3. Асинхронность (asyncio) — неблокирующее выполнение задач в одном потоке (идеально для I/O-операций).

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

Python предлагает несколько методов для конкурентного выполнения кода, каждый со своими плюсами и ограничениями:

  1. Многопоточность (threading)

    • Потоки делят память процесса, но из-за GIL (Global Interpreter Lock) только один поток исполняет Python-код одновременно.

    • Подходит для I/O-задач (например, сетевые запросы), где потоки могут ждать ответа без блокировки друг друга.

    • Пример:

      import threading
      
      def task():
          print("Поток выполнен")
      
      thread = threading.Thread(target=task)
      thread.start()
  2. Многопроцессорность (multiprocessing)

    • Каждый процесс имеет свой интерпретатор и память, что обходит GIL.

    • Подходит для CPU-интенсивных задач (например, вычисления).

    • Пример:

      from multiprocessing import Process
      
      def task():
          print("Процесс выполнен")
      
      process = Process(target=task)
      process.start()
  3. Асинхронность (asyncio)

    • Использует корутины и цикл событий для неблокирующего выполнения.

    • Эффективен для высоконагруженных I/O-приложений (веб-серверы, API).

    • Пример:

      import asyncio
      
      async def task():
          print("Корутина выполнена")
      
      asyncio.run(task())

Вывод:

  • Для I/O: asyncio или threading.

  • Для CPU: multiprocessing.

  • Аватар

    Python Guru

    Sergey Filichkin

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

Уровень

  • Рейтинг:

    1

  • Сложность:

    6

Навыки

  • Python

    Python

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

#concurrency

#threading

#multiprocessing

#asyncio

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

  • Аватар

    Python Guru

    Sergey Filichkin

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