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.