Isolates erzeugen und Nachrichtenübermittlung
Kommunizieren Sie über SendPort und ReceivePort
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. ✅
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
- Warum Isolates statt Threads
- Isolate.run für schnelles Auslagern
- Isolates erzeugen und Nachrichtenübermittlung
- Rechenintensive Aufgaben ohne Ruckeln