Kapitel 81. Denken in Coroutinen

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

Dawn Griffiths und David Griffiths

Coroutines sind Funktionen oder Methoden, die angehalten und wieder fortgesetzt werden können. In Kotlin können sie anstelle von Threads für asynchrone Arbeit verwendet werden, da viele Coroutines effizient auf einem einzigen Thread laufen können.

Um zu sehen, wie Coroutines funktionieren, werden wir ein Beispielprogramm erstellen, das diese Schlagzeugsequenzen parallel abspielt:

Instrument Sequenz
Toms x-x-x-x-x-x-x-x-
Hoher Hut x-x-x---x-x-x---
Crash-Becken ----------------x----

Wir könnten dafür Threads verwenden, aber in den meisten Systemen wird der Ton vom Sound-Subsystem abgespielt, während der Code pausiert, bis er den nächsten Ton abspielen kann. Es ist verschwenderisch, eine wertvolle Ressource wie einen Thread auf diese Weise zu blockieren.

Stattdessen werden wir eine Reihe von Coroutines erstellen: eine für jedes der Instrumente. Wir haben eine Methode namens playBeats, die eine Schlagzeugsequenz und den Namen einer Sounddatei annimmt. Der vollständige Code ist unter https://oreil.ly/6x0GK zu finden; eine vereinfachte Version sieht so aus:

 suspend fun playBeats(beats: ...

Get 97 Dinge, die jeder Java-Programmierer wissen sollte 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.