Escribe para buscar…

Basic

Una corutina és un bloc de codi que es pot executar de manera independent en qualsevol moment.

Esta página todavía no se ha traducido — se muestra en su idioma original:Català

Introducció

Una corutina és un bloc de codi que es pot executar de manera independent en qualsevol moment.

Una corutina s’executa dins d’un Thread, es pot executar per qualsevol thread, i inclús executar-se en threads diferents en diferents instants d’execució.

Entorn de treball

Crea un projecte “JVM console application” amb Amper

Encara que la paraula clau suspend forma part del llenguatge necessites instal·lar biblioteques per poder utilitzar les corutines.

Modifica el fitxer module.yaml afegint una dependència amb kotlinx-coroutines-core:

yaml
module.yaml
dependencies:
  - org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2

Corutina

A continuació tens un codi que crea dos corutines amb launch i runBlocking:

Cada corutina s’executa al moment de crear-se, però pot suspendre la seva execució si executa una funció suspend que decideix esperar algun esdeveniment i no continuar la seva execució.

Si una corutina suspen la seva execució, es posa en una cua d’execució del thread a l’espera de continuar sent executada, i el thread continua executant altres corutines.

Si executes el codi, pots veure que World! apareix abans que Hello, perquè delay és una funció suspend que atura la seva execució fins que no ha passat el temps que li passes com argument.

shell
World!
Hello,
Note

Amb les funcions suspend pots escriure codi de manera lineal, però el codi no s’executa de manera lineal sinó concurrent.

Les coroutines són lleugeres

Les corutines necessiten molts menys recursos que els threads.

Per exemple, el següent codi llança 50.000 coroutines diferents consumint molt poca memòria, on cada corutina espera 5 segons i després imprimeix un període (‘.’):

kotlin
import kotlinx.coroutines.*

fun main() = runBlocking {
    repeat(50_000) { // launch a lot of coroutines
        launch {
            delay(5_000)
            print(".")
        }
    }
}

Estás leyendo una vista previa.

Inicia sesión para leer el artículo completo. Cualquier cuenta abre 4 artículos gratuitos al mes; el alumnado y el profesorado leen las páginas de su curso sin límite.

Iniciar sesión