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,
Mutexza 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.