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:
-
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. -
Módulo
multiprocessing— cria processos separados, evitando o GIL, adequado para tarefas intensivas em CPU. -
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.