Sobes.tech
Back to questions
Junior — Middle
58

Какие модули Python предоставляют средства для реализации параллельного выполнения задач?

Companies where asked
Стилсофт

Answer from AI

sobes.tech AI

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

  • threading — позволяет создавать и управлять потоками (threads). Подходит для задач, где важна параллельность ввода-вывода, но из-за GIL не увеличивает производительность CPU-интенсивных задач.
  • multiprocessing — создает отдельные процессы, обходя ограничения GIL, что позволяет эффективно распараллеливать CPU-интенсивные задачи.
  • concurrent.futures — высокоуровневый интерфейс для работы с потоками (ThreadPoolExecutor) и процессами (ProcessPoolExecutor), упрощает управление пулом потоков или процессов.
  • asyncio — для асинхронного программирования, позволяет выполнять задачи конкурентно без создания потоков или процессов, подходит для ввода-вывода.

Пример использования concurrent.futures с потоками:

import concurrent.futures
import time

def task(n):
    time.sleep(n)
    return f"Задача {n} завершена"

with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
    futures = [executor.submit(task, i) for i in range(3)]
    for future in concurrent.futures.as_completed(futures):
        print(future.result())