Kapitel 6. Umgang mit Gleichzeitigkeit durch Rückrufe

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Die idiomatische Art, Gleichzeitigkeit in Kotlin zu handhaben, ist die Verwendung von Coroutines. Allerdings wird dies in Java schon seit einiger Zeit mit Threads und Callbacks gemacht. Warum brauchen wir also Coroutines?

Um diese Frage zu beantworten, werden wir uns eine typische Kotlin-Implementierung auf Android ansehen und die Fallstricke bei der Verwendung von Threads diskutieren. Die Schwachstellen des traditionellen Ansatzes zu kennen, ist der Schlüssel zum Verständnis der Motivation hinter der Entwicklung von Coroutines.

In Android-Anwendungen sollten langwierige Aufgaben nicht im UI-Thread ausgeführt werden, wie du im vorigen Kapitel gesehen hast. Wenn du den Haupt-Thread - den UI-Thread - blockierst, hat deine App möglicherweise nicht die Ressourcen, die sie braucht, um den Bildschirm zu zeichnen oder ihn angemessen zu aktualisieren. Lint wird sich sogar beschweren, wenn du versuchst, im UI-Thread einen offensichtlichen IO-Aufruf durchzuführen (z. B. eine HTTP-Verbindung herzustellen).

Eine Android-Anwendung läuft reibungslos, wenn der Haupt-Thread alle seine Aufgaben in weniger als der Rahmenzeit abschließt, die bei den meisten Geräten 16 ms beträgt. Das ist eine recht kurze Zeitspanne, und alle blockierenden Aufrufe, wie z. B. Netzwerkanfragen (blockierende IO), sollten in einem Hintergrundthread ...

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.