Junior — Middle
Hogyan valósul meg a korutinok közötti interakció egy programon belül?
sobes.tech MI
Válasz az MI-től
Androidon (és Kotlinben) általában a korutinok közötti interakció szinkronizációs és adatcsere mechanizmusokon keresztül történik, például:
- Csatornák (Channels) — lehetővé teszik az adatok aszinkron küldését és fogadását a korutinok között.
- SharedFlow és StateFlow — reaktív áramlatok az események és állapotok terjesztésére.
- Közös kontextus vagy szinkronizációs objektumok — például
Mutexa közös erőforrások védelmére.
Példa egy csatorna használatára üzenetek cseréjéhez a korutinok között:
val csatorna = Channel<String>()
// Küldő
launch {
csatorna.send("Szia a korutinból")
}
// Fogadó
launch {
val üzenet = csatorna.receive()
println(üzenet)
}
Így a korutinok adatokat cserélhetnek és koordinálhatják munkájukat anélkül, hogy blokkolnák a szálakat.