Capítulo 81. Pensar en Coroutines
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Dawn Griffiths y David Griffiths
Las coroutines son funciones o métodos que pueden suspenderse y reanudarse. En Kotlin, pueden utilizarse en lugar de hilos para el trabajo asíncrono, porque muchas coroutines pueden ejecutarse eficientemente en un solo hilo.
Para ver cómo funcionan las coroutines, vamos a crear un programa de ejemplo que reproduzca estas secuencias de batería en paralelo:
| Instrumento | Secuencia |
|---|---|
| Toms | x-x-x-x-x-x-x-x- |
| Sombrero alto | x-x-x---x-x-x--- |
| Plato crash | ----------------x---- |
Podríamos utilizar hilos para hacer esto, pero en la mayoría de los sistemas, el sonido es reproducido por el subsistema de sonido, mientras el código hace una pausa hasta que pueda reproducir el siguiente sonido. Es un desperdicio bloquear un recurso valioso como un hilo de esta manera.
En su lugar, vamos a crear un conjunto de coroutines: una para cada uno de los instrumentos. Tendremos un método llamado playBeats, que toma una secuencia de percusión y el nombre de un archivo de sonido. El código completo está en https://oreil.ly/6x0GK; una versión simplificada tiene este aspecto:
suspend fun playBeats(beats: String, file: ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access