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