Sobes.tech
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:

  1. 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.

  2. 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.

  3. 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())