Event Loop und Microtasks
Verstehen, wie Dart asynchrone Arbeit plant
Event Loop und Microtasks ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Ein Thread, kein Warten
Dart führt Ihren Code in einem einzigen Thread aus und friert trotzdem nicht ein. Das Geheimnis ist die Ereignisschleife, die Arbeit plant, statt zu blockieren. ⚡
Was die Ereignisschleife tut
Die Ereignisschleife ist ein einfacher Ablauf: Sie nimmt die nächste ausstehende Aufgabe, führt sie vollständig aus und wiederholt den Vorgang. Ihr Code läuft in übersichtlichen, ununterbrochenen Abschnitten.
Synchrones zuerst
Ihr gesamter normaler Code wird zuerst von oben nach unten ausgeführt. Erst wenn diese synchrone Arbeit abgeschlossen ist, beginnt die Schleife mit den geplanten Aufgaben.
Zwei Warteschlangen
Die Schleife verarbeitet zwei Warteschlangen: die Microtask-Warteschlange und die Ereigniswarteschlange. Microtasks haben gegenüber Ereignissen immer Vorrang.
Die Microtask-Warteschlange
Eine Microtask ist eine kleine verzögerte Aufgabe, etwa ein Callback eines abgeschlossenen Future. Die Schleife arbeitet alle Microtasks ab, bevor sie die Ereigniswarteschlange anfasst.
Die Ereigniswarteschlange
Die Ereigniswarteschlange enthält größere Aufgaben: Timer, Dateizugriffe, Tippeingaben und Netzwerkantworten. Sie warten, bis alle Microtasks abgeschlossen sind.
Eine Microtask planen
Mit scheduleMicrotask können Sie Arbeit an die Microtask-Warteschlange übergeben. Sie wird nach dem aktuellen Code, aber vor jedem Ereignis ausgeführt.
scheduleMicrotask(() => print("microtask"));
print("right now");Ein Ereignis planen
Ein Timer (oder Future.delayed mit dem Wert null) legt einen Callback in die Ereigniswarteschlange. Er wird daher nach allen ausstehenden Microtasks ausgeführt.
Timer.run(() => print("event"));
print("right now");Microtasks gewinnen
Wenn sich beide in den Warteschlangen befinden, wird die Microtask zuerst ausgeführt. Diese Reihenfolge hält Future-Ketten schnell und vorhersehbar.
scheduleMicrotask(() => print("A"));
Timer.run(() => print("B"));
// prints A then BWarum alles flüssig bleibt
Da jede Aufgabe vollständig ausgeführt wird, wird Ihre App nie nur teilweise aktualisiert. Die Schleife hält alles reaktionsfähig, ohne dass Sie Threads manuell verwalten müssen.
Lassen Sie die Schleife nicht verhungern
Wenn Sie die Microtask-Warteschlange überfluten, können Ereignisse auf unbestimmte Zeit blockiert werden und die Eingabe einfrieren. Halten Sie Microtask-Aufgaben kurz und lassen Sie auch Ereignisse zum Zug kommen.
Schnelltest
Schnelltest zur Reihenfolge der Warteschlangen.
Zusammenfassung: Die Ereignisschleife
Sie haben gelernt, dass die Ereignisschleife zuerst synchronen Code ausführt, dann Microtasks abarbeitet und anschließend Ereignisse verarbeitet. Diese Reihenfolge hält Dart trotz eines einzelnen Threads flüssig. 🎉
Häufig gestellte Fragen
Ist die Lektion „Event Loop und Microtasks“ kostenlos?
Ja — der vollständige Text von „Event Loop und Microtasks“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Event Loop und Microtasks“?
Verstehen, wie Dart asynchrone Arbeit plant Du übst Dart Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Dart Academy zu starten?
Keine Vorkenntnisse erforderlich. Dart Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Event Loop und Microtasks“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Dart Academy-Lektion Code schreiben und ausführen?
Ja. Jede Dart Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Event Loop und Microtasks
- Futures erstellen und erwarten
- Fehlerbehandlung in async-Code
- Future.wait und parallele Arbeit