Sobes.tech
Junior — Middle

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