Sobes.tech
Junior — Middle

Coroutines'daki temel soğuk akışları (cold flows) ve özelliklerini açıklayabilir misin?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin Coroutines'deki soğuk akışlar (cold flows), yalnızca abone olunduğunda (collect) veri göndermeye başlayan akışlardır. Bu zamana kadar herhangi bir hesaplama yapmazlar ve kaynak kullanmazlar.

Soğuk akışların özellikleri:

  • Tembel yürütme: flow içindeki kod yalnızca abone olunduğunda çalışır.
  • Birden fazla abone, kodun tekrar çalışmasına neden olur.
  • Talep üzerine üretilen veri dizilerini tanımlamaya izin verirler.

Soğuk akış örneği:

val flow = flow {
    println("Flow started")
    emit(1)
    emit(2)
}

fun main() = runBlocking {
    println("Before collect")
    flow.collect { value -> println(value) }
    println("After collect")
}

Çıktı şu şekilde olacaktır:

Before collect
Flow started
1
2
After collect

Bu, flow içindeki kodun yalnızca collect sırasında çalıştığını gösterir.