Sobes.tech
Junior — Middle

Welke methoden zijn geïmplementeerd in Python voor het uitvoeren van taken parallel of concurrerend?

sobes.tech AI

Antwoord van AI

In Python worden verschillende benaderingen en bibliotheken gebruikt om taken parallel of gelijktijdig uit te voeren:

  1. Module threading — voor het maken van threads. Geschikt voor taken met veel invoer/uitvoer, maar versnelt CPU-bound taken niet vanwege GIL.

  2. Module multiprocessing — voor het maken van processen. Maakt het mogelijk om GIL te omzeilen en meerdere CPU-kernen efficiënt te gebruiken.

  3. Module asyncio — voor asynchrone programmering met behulp van coroutines. Goed voor veel invoer/uitvoer operaties.

  4. Hogere niveau bibliotheken:

    • concurrent.futures.ThreadPoolExecutor en ProcessPoolExecutor — handige interfaces voor het uitvoeren van taken in threads of processen.

Voorbeeld van gebruik van concurrent.futures:

from concurrent.futures import ThreadPoolExecutor

def taak(n):
    print(f"Taak {n} wordt uitgevoerd")

with ThreadPoolExecutor(max_workers=3) as executor:
    for i in range(5):
        executor.submit(taak, i)

De keuze van de methode hangt af van het type taak: voor CPU-bound — multiprocessing, voor I/O-bound — threading of asyncio.