Python AsyncIO: Coroutinen gemeinsam ausführen

  • 14 Sep 2025
  • CODLAB Team
  • 1 min

Asynchrone Programmierung ist hilfreich, wenn Aufgaben auf andere Systeme warten. Während eine Coroutine auf eine passende asynchrone Operation wartet, kann die Ereignisschleife weitere Aufgaben ausführen. Rechenarbeit wird dadurch nicht automatisch schneller.

Eine Coroutine ausführen

Eine mit async def definierte Funktion erzeugt beim Aufruf eine Coroutine. Sie muss ausgeführt oder an eine laufende Ereignisschleife übergeben werden. Das Beispiel verwendet asyncio.run() als Einstiegspunkt eines eigenständigen Skripts.

# Einfaches Beispiel für eine asynchrone Funktion
async def hallo_async():
    print("Hallo Async World")

# Aufrufen der asynchronen Funktion in einer Event-Schleife
import asyncio

async def main():
    await hallo_async()

# Führen Sie die Event-Schleife aus
asyncio.run(main())

Mehrere Wartezeiten zusammen behandeln

Im nächsten eigenständigen Beispiel starten die Aufgaben gemeinsam über gather(). Die Schlafzeiten veranschaulichen Wartephasen; sie simulieren keine gemessene Netzwerkleistung.

# Eigenständiges Beispiel
import asyncio
async def task1():
    await asyncio.sleep(1)
    print("Task 1 erledigt")

async def task2():
    await asyncio.sleep(2)
    print("Task 2 erledigt")

async def main():
    # Führe task1 und task2 gleichzeitig aus
    await asyncio.gather(task1(), task2())

asyncio.run(main())

Blockierende Arbeit erkennen

Ein synchroner Netzwerkaufruf oder eine lange Berechnung blockiert die Ereignisschleife, auch wenn die umgebende Funktion asynchron definiert ist. Prüfen Sie daher die verwendeten Bibliotheken. Aufgaben, die gleichzeitig laufen sollen, benötigen einen passenden Ablauf und begrenzte Ressourcen.

Planen Sie Fehler, Zeitlimits und die Beendigung der Aufgaben ausdrücklich. gather() und eine TaskGroup behandeln Fehler unterschiedlich; wählen Sie anhand des gewünschten Lebenszyklus. Aufräumarbeiten gehören in einen Ablauf, der auch bei einer abgebrochenen Aufgabe ausgeführt wird.

Die konkrete Aufgabe prüfen

Testen Sie erfolgreiche Antworten, Fehler einzelner Aufgaben und langsame Gegenstellen. Kontrollieren Sie, ob offene Verbindungen geschlossen werden und ob neue Arbeit nach einem Abbruch noch gestartet wird. Messen Sie die Wirkung mit der realen Aufgabe. Die Anzahl gleichzeitig gestarteter Coroutinen allein sagt nichts über Durchsatz oder Stabilität aus.

Weiterführende Dokumentation: Python: Coroutines and tasks.

Teilen Sie diesen Artikel

Kunden

Noch keine Kommentare. Schreiben Sie den ersten!

Einen Kommentar hinterlassen

Wird nicht veröffentlicht

Verwandte Artikel

Projekt im Kopf?

Wir entwickeln maßgeschneiderte Software und KI-Lösungen. Lassen Sie uns gemeinsam Ihr nächstes Projekt starten.

Kostenloses Erstgespräch