Junior — Middle
Môžeš opísať hlavné studené toky (cold flows) v Coroutines a ich vlastnosti?
sobes.tech AI
Odpoveď od AI
Studené toky (cold flows) v Kotlin Coroutines sú to toky, ktoré začínajú emitovať dáta až pri ich odberu (collect). Do tej doby nevykonávajú žiadne výpočty a nezaberajú zdroje.
Vlastnosti studených tokov:
- Lenivé vykonávanie: kód vo vnútri flow sa spúšťa iba pri odberu.
- Viaceré odbery vedú k opakovanému spusteniu kódu.
- Umožňujú popis sekvencií dát generovaných na požiadanie.
Príklad studeného toku:
val flow = flow {
println("Flow started")
emit(1)
emit(2)
}
fun main() = runBlocking {
println("Before collect")
flow.collect { value -> println(value) }
println("After collect")
}
Výstup bude:
Before collect
Flow started
1
2
After collect
Toto ukazuje, že kód vo vnútri flow sa spúšťa iba pri collect.