Escriu per cercar…

Basic

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

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 llegint una vista prèvia.

Inicia sessió per llegir l'article complet. Qualsevol compte obre 4 articles gratuïts al mes; l'alumnat i el professorat llegeixen les pàgines del seu curs sense límit.

Inicia sessió