Junior — Middle
Welche Methoden sind in Python implementiert, um Aufgaben parallel oder konkurrierend auszuführen?
sobes.tech KI
Antwort von AI
In Python werden verschiedene Ansätze und Bibliotheken verwendet, um Aufgaben parallel oder konkurrierend auszuführen:
-
Modul
threading— zum Erstellen von Threads. Geeignet für Aufgaben mit vielen Ein- und Ausgaben, aber beschränkt durch den GIL bei CPU-bound Aufgaben. -
Modul
multiprocessing— zum Erstellen von Prozessen. Ermöglicht das Umgehen des GIL und die effiziente Nutzung mehrerer CPU-Kerne. -
Modul
asyncio— für asynchrone Programmierung mit Coroutinen. Gut geeignet für viele Ein- und Ausgaben. -
Hochrangige Bibliotheken:
concurrent.futures.ThreadPoolExecutorundProcessPoolExecutor— bequeme Schnittstellen zum Ausführen von Aufgaben in Threads oder Prozessen.
Beispiel für die Verwendung von concurrent.futures:
from concurrent.futures import ThreadPoolExecutor
def aufgabe(n):
print(f"Aufgabe {n} läuft")
with ThreadPoolExecutor(max_workers=3) as executor:
for i in range(5):
executor.submit(aufgabe, i)
Die Wahl der Methode hängt also vom Aufgabentyp ab: Für CPU-bound — multiprocessing, für I/O-bound — threading oder asyncio.