Sobes.tech
Junior — Middle

Kuidas toimub korutinate vaheline koostöö ühe programmi raames?

sobes.tech AI

Vastus AI-lt

Android (ja Kotlin) sees, korutinide vaheline suhtlus toimub tavaliselt sünkroniseerimise ja andmevahetuse mehhanismide kaudu, nagu:

  • Kanalid (Channels) — võimaldavad korutinide vahel andmeid asünkroonselt saata ja vastu võtta.
  • SharedFlow ja StateFlow — reaktiivsed vood, mis levitavad sündmusi ja olekuid.
  • Ühine kontekst või sünkroniseerimisobjektid — näiteks Mutex, et kaitsta ühiseid ressursse.

Näide kanali kasutamisest sõnumite vahetamiseks korutinide vahel:

val kanal = Channel<String>()

// Saatja
launch {
    kanal.send("Tere korutinist")
}

// Vastuvõtja
launch {
    val sõnum = kanal.receive()
    println(sõnum)
}

Sel viisil saavad korutinid vahetada andmeid ja koordineerida oma tööd ilma niitide blokeerimiseta.