Sobes.tech
Middle
22

Как параллелить выполнение функции в Python?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

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

  1. Модуль threading — для многопоточности, подходит для задач с большим количеством операций ввода-вывода, так как из-за GIL потоки не дают прироста в вычислительных задачах.

  2. Модуль multiprocessing — создает отдельные процессы, обходя GIL, подходит для CPU-интенсивных задач.

  3. Асинхронное программирование (asyncio) — для конкурентного выполнения задач, особенно полезно при работе с сетью и вводом-выводом.

Пример с использованием multiprocessing для параллельного выполнения функции:

from multiprocessing import Pool

def f(x):
    return x * x

if __name__ == '__main__':
    with Pool(4) as p:
        results = p.map(f, [1, 2, 3, 4, 5])
    print(results)  # [1, 4, 9, 16, 25]

Этот код запускает функцию f параллельно в 4 процессах.