Sobes.tech
Junior — Middle

Kokius būdus žinai užduotims vykdyti Coroutines?

sobes.tech AI

Atsakymas iš AI

Kotlin Coroutines užduotys gali būti vykdomos keliais būdais:

  • launch — pradeda naują coroutine, kuri vyksta lygiagrečiai ir negrąžina rezultato. Naudojama foninėms užduotims, kur rezultatas nereikalingas.

  • async — pradeda coroutine, kuri grąžina rezultatą Deferred formoje, leidžiantį gauti rezultatą naudojant await(). Tinka paraleliniams skaičiavimams su rezultatu.

  • runBlocking — blokuoja esamą srautą iki kol coroutine baigsis, dažnai naudojama pagrindinėse funkcijose arba testuose.

  • withContext — keičia vykdymo kontekstą (pavyzdžiui, į Dispatchers.IO, skirtą įvesties/išvesties operacijoms) ir vykdo kodo bloką, grąžindamas rezultatą.

Pavyzdys:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000)
        println("Užduotis launch")
    }

    val result = async {
        delay(500)
        42
    }

    println("async rezultatas: ${result.await()}")
}