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()}")
}