Sobes.tech
Junior — Middle

Kako se ostvaruje interakcija između korutina u okviru jedne programa?

sobes.tech АИ

Одговор од АИ

U Androidu (i Kotlin) interakcija između korutina obično se vrši putem mehanizama sinhronizacije i razmene podataka, kao što su:

  • Kanali (Channels) — omogućavaju slanje i primanje podataka između korutina asinhrono.
  • SharedFlow i StateFlow — reaktivni tokovi za širenje događaja i stanja.
  • Zajednički kontekst ili objekti sa sinhronizacijom — na primer, Mutex za zaštitu zajedničkih resursa.

Primer korišćenja kanala za razmenu poruka između korutina:

val kanal = Channel<String>()

// Pošiljalac
launch {
    kanal.send("Zdravo od korutine")
}

// Primaoc
launch {
    val poruka = kanal.receive()
    println(poruka)
}

Na ovaj način, korutine mogu razmenjivati podatke i koordinisati svoj rad bez blokiranja niti.