Junior — Middle
Ako sa realizuje interakcia medzi korutinami v rámci jedného programu?
sobes.tech AI
Odpoveď od AI
V Androide (a Kotlin) je interakcia medzi korutinami zvyčajne realizovaná prostredníctvom mechanizmov synchronizácie a výmeny dát, ako sú:
- Kanály (Channels) — umožňujú odosielanie a prijímanie dát medzi korutinami asynchrónne.
- SharedFlow a StateFlow — reaktívne prúdy na šírenie udalostí a stavov.
- Zdieľaný kontext alebo objekty s synchronizáciou — napríklad
Mutexna ochranu zdieľaných zdrojov.
Príklad použitia kanála na výmenu správ medzi korutinami:
val kanál = Channel<String>()
// Odosielateľ
launch {
kanál.send("Ahoj od korutiny")
}
// Prijímateľ
launch {
val správa = kanál.receive()
println(správa)
}
Týmto spôsobom môžu korutiny vymieňať dáta a koordinovať svoju prácu bez blokovania vlákien.