Sobes.tech
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 Mutex a 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.