Sobes.tech
Junior — Middle

Koje načine izvršavanja zadataka u Coroutines poznaješ?

sobes.tech АИ

Одговор од АИ

U Kotlin Coroutines, zadaci se mogu izvršiti na više načina:

  • launch — pokreće novu korutinu koja se izvršava paralelno i ne vraća rezultat. Koristi se za pozadinske zadatke gde rezultat nije potreban.

  • async — pokreće korutinu koja vraća rezultat u obliku Deferred, omogućavajući dobijanje rezultata putem await(). Pogodno za paralelne proračune sa rezultatom.

  • runBlocking — blokira trenutni tok dok se korutina ne završi, i često se koristi u main funkcijama ili testovima.

  • withContext — menja kontekst izvršenja (npr. na Dispatchers.IO za ulazno-izlazne operacije) i izvršava blok koda, vraćajući rezultat.

Primer:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000)
        println("Zadatak u launch")
    }

    val result = async {
        delay(500)
        42
    }

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