EMZETT.
Login

Coroutinen

Kurz: Coroutinen sind Funktionen, die sich mittendrin anhalten und später an derselben Stelle fortsetzen lassen.

Genauer: Anders als Threads schaltet nicht das Betriebssystem um, sondern der Code gibt freiwillig die Kontrolle ab (kooperatives Multitasking). Dadurch sind sie sehr leichtgewichtig: Zehntausende laufen in einem Thread.

Im Detail

  • Schlüsselwörter: yield (Python-Generatoren), await (async/await), suspend (Kotlin), Goroutinen (Go, vom Laufzeitsystem verteilt).
  • Stärke: Viel Warten auf Netzwerk oder Datenbank, ohne dass Threads herumstehen.
  • Schwäche: Eine Coroutine, die rechnet statt zu warten, blockiert alle anderen im selben Thread. Rechenlast gehört in Prozesse oder Threads.
  • Ablauf: Eine Ereignisschleife (Event Loop) startet Coroutinen, merkt sich ihren Zustand und setzt sie fort, sobald ihr Ergebnis bereit ist.
  • Unter der Haube: Der Compiler macht daraus meist einen Zustandsautomaten.

Siehe auch: async/await