Milyen feladatvégrehajtási módszereket ismersz a Coroutines-ben?
sobes.tech MI
Válasz az MI-től
A Kotlin Coroutines-ban a feladatokat többféleképpen lehet végrehajtani:
-
launch — elindít egy új coroutine-t, amely párhuzamosan fut, és nem ad vissza eredményt. Háttérfeladatokhoz használják, ahol nincs szükség eredményre.
-
async — elindít egy coroutine-t, amely Deferred formájában ad vissza eredményt, lehetővé téve az eredmény elérését az await() segítségével. Alkalmas eredménnyel járó párhuzamos számításokra.
-
runBlocking — blokkolja az aktuális szálat, amíg a coroutine be nem fejeződik, és gyakran használják main függvényekben vagy tesztekben.
-
withContext — megváltoztatja a végrehajtási kontextust (például Dispatchers.IO-ra az bemenet/kimenet műveletekhez), és végrehajt egy kódrészt, visszaadva az eredményt.
Példa:
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000)
println("Feladat a launch-ben")
}
val result = async {
delay(500)
42
}
println("async eredmény: ${result.await()}")
}