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