Sobes.tech
Middle

Como paralelizar a execução de uma função em Python?

sobes.tech IA

Resposta da IA

No Python, existem várias abordagens para executar funções em paralelo:

  1. Módulo threading — para multitarefa, adequado para tarefas com muitas operações de entrada/saída, pois devido ao GIL, os threads não oferecem melhorias em tarefas de cálculo.

  2. Módulo multiprocessing — cria processos separados, evitando o GIL, adequado para tarefas intensivas em CPU.

  3. Programação assíncrona (asyncio) — para execução concorrente de tarefas, especialmente útil ao trabalhar com rede e entrada/saída.

Exemplo usando multiprocessing para executar funções em paralelo:

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]

Este código executa a função f em paralelo em 4 processos.