Kapitel 10. Ströme
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Bisher haben wir Coroutines, Suspending-Funktionen und den Umgang mit Streams mit Channel
s behandelt. Wir haben im vorherigen Kapitel gesehen, dass die Arbeit mit Channel
s das Starten von Coroutines erfordert, um von diesen Channel
s zu senden und/oder zu empfangen. Die oben erwähnten Coroutines sind heiße Entitäten, die manchmal schwer zu debuggen sind oder Ressourcen verschwenden können, wenn sie nicht rechtzeitig abgebrochen werden.
Flow
s sind, wie Channel
s, dafür gedacht, asynchrone Datenströme zu verarbeiten, allerdings auf einer höheren Abstraktionsebene und mit besseren Bibliothekswerkzeugen. Vom Konzept her sind Flow
s ähnlich wie Sequence
s, mit dem Unterschied, dass jeder Schritt eines Flow
asynchron sein kann. Es ist auch einfach, Datenströme in strukturierte Gleichzeitigkeit zu integrieren, um ein Auslaufen von Ressourcen zu vermeiden.
Allerdings sind Flow
s1 sind jedoch nicht als Ersatz für Channel
gedacht. Channel
s sind Bausteine für Flows. Channel
s sind in einigen Architekturen, wie z. B. in CSP (siehe Kapitel 9), immer noch angebracht. Du wirst jedoch sehen, dass Flows für die meisten Anforderungen in der asynchronenDatenverarbeitung geeignet sind.
In diesem Kapitel stellen wir dir Cold und Hot Flows vor. Du wirst sehen, dass Cold Flows die bessere Wahl sind, wenn du sicherstellen willst, dass keine Ressourcen verloren ...
Get Android mit Kotlin programmieren now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.