Dart Academy · Lektion

Isolates erzeugen und Nachrichtenübermittlung

Kommunizieren Sie über SendPort und ReceivePort

Lektion 3 von 413 Schritte

Isolates erzeugen und Nachrichtenübermittlung ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.

Manuell vorgehen

Für langlebige Worker mit regem Nachrichtenaustausch starten Sie selbst ein Isolate mit Isolate.spawn. So behalten Sie die Kontrolle über seine gesamte Lebensdauer.

Der Einstiegspunkt

Isolate.spawn benötigt eine Funktion der obersten Ebene als Einstiegspunkt sowie ein Argument, das beim Start übergeben wird.

Isolate.spawn(worker, message);

ReceivePort kennenlernen

Ein ReceivePort ist Ihr Briefkasten. Sie hören darauf, um Nachrichten zu empfangen, die andere Isolates an Sie senden. 📥

final port = ReceivePort();
port.listen((msg) => print(msg));

SendPort kennenlernen

Jeder ReceivePort stellt einen SendPort bereit. Wer diesen SendPort besitzt, kann Nachrichten in Ihren Briefkasten legen.

final SendPort tx = port.sendPort;

Einen Port übergeben

Damit die Kommunikation beginnt, übergeben Sie dem neuen Isolate einen SendPort als Spawn-Argument. Jetzt weiß es, wohin es antworten kann.

Isolate.spawn(worker, port.sendPort);

Der Worker antwortet

Verwenden Sie im Worker den empfangenen SendPort, um Ergebnisse an das Haupt-Isolate zurückzusenden.

void worker(SendPort tx) {
  tx.send('done');
}

Der Handshake

Ein gängiges Muster ist ein bidirektionaler Handshake: Der Worker sendet zuerst seinen eigenen SendPort zurück, sodass beide Seiten einander Nachrichten schicken können.

Nur übertragbare Daten

Nachrichten müssen übertragbar sein: Zahlen, Strings, Listen, Maps und SendPorts. Dinge wie geöffnete Dateien oder Funktionen können die Grenze nicht überschreiten.

Antworten lesen

Auf der Hauptseite wird der listen-Callback Ihres ReceivePort für jede Antwort aufgerufen. Verarbeiten Sie die Antworten in der Reihenfolge ihres Eintreffens.

Den Port schließen

Wenn Sie fertig sind, rufen Sie port.close() auf. Ein geöffneter ReceivePort hält Ihr Programm am Leben. Durch das Schließen kann es sauber beendet werden.

Ein Isolate beenden

Behalten Sie die Isolate-Referenz und rufen Sie isolate.kill() auf, um einen nicht mehr benötigten Worker zu beenden. Geben Sie seine Ressourcen umgehend frei.

Schnelltest

Auf welchem Port hören Sie, um Nachrichten zu empfangen?

Zusammenfassung

Starten Sie den Worker mit Isolate.spawn und übergeben Sie anschließend einen SendPort, damit die Isolates miteinander kommunizieren können. Senden Sie nur übertragbare Daten und schließen Sie die Ports, wenn Sie fertig sind. ✅

Kostenlos starten

Lerne Dart mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
30
Lektionen
120

Häufig gestellte Fragen

Ist die Lektion „Isolates erzeugen und Nachrichtenübermittlung“ kostenlos?

Ja — der vollständige Text von „Isolates erzeugen und Nachrichtenübermittlung“ 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 „Isolates erzeugen und Nachrichtenübermittlung“?

Kommunizieren Sie über SendPort und ReceivePort 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 3 von 4.

Wie lange dauert die Lektion „Isolates erzeugen und Nachrichtenübermittlung“?

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

  1. Warum Isolates statt Threads
  2. Isolate.run für schnelles Auslagern
  3. Isolates erzeugen und Nachrichtenübermittlung
  4. Rechenintensive Aufgaben ohne Ruckeln
← Zurück zu Dart Academy