Junior — Middle
Quais métodos de implementação de execução paralela de tarefas são utilizados em Python?
sobes.tech IA
Resposta da IA
Em Python, existem várias abordagens para a execução paralela de tarefas:
-
Multithreading (threading) — permite executar vários threads num único processo. É útil para tarefas com muitas operações de entrada/saída, mas devido ao GIL (Global Interpreter Lock), não é eficiente para tarefas intensivas em CPU.
-
Multiprocessing — cria vários processos, cada um com a sua própria memória, contornando a limitação do GIL. Adequado para tarefas intensivas em CPU.
-
Programação assíncrona (asyncio) — permite escrever código que não bloqueia enquanto espera por operações de entrada/saída, usando um ciclo de eventos e corrotinas.
Exemplo com multiprocessing:
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
with Pool(4) as p:
print(p.map(f, [1, 2, 3, 4]))
Exemplo com asyncio:
import asyncio
async def say_hello():
await asyncio.sleep(1)
print('Hello')
async def main():
await asyncio.gather(say_hello(), say_hello())
asyncio.run(main())