Sobes.tech
Middle

Mit jelent a 'suspend' kulcsszó Kotlinban?

sobes.tech MI

Válasz az MI-től

A suspend kulcsszó Kotlinban olyan függvény vagy lambda kifejezés megjelölésére szolgál, amely potenciálisan megszakítható és később folytatható. Ezeket a függvényeket korutinoknak nevezik.

A suspend függvények fő jellemzői:

  • Csak más suspend függvényből vagy korutin scope-ból hívhatók.
  • A függvény szüneteltetése nem blokkolja a végrehajtásáért felelős szálat. Ehelyett a szál más feladatokra használható.
  • Egy szüneteltetett művelet (pl. hálózati kérés) végrehajtása után a függvény ott folytatódik, ahol megszakadt.
  • A háttérben a Kotlin fordító suspend függvényeket állapotgépekké alakít, Continuation-Passing Style (CPS) használatával.

Példa:

// Példa egy hosszabb művelet szimulálására szolgáló suspend függvény
suspend fun fetchData(): String {
    // Hálózati kérés vagy hosszú feladat szimulálása
    kotlinx.coroutines.delay(1000) // Szünetelés anélkül, hogy blokkolná a szálat
    return "Adatok érkeztek"
}

// Függvény, amely hív egy suspend függvényt
fun main() = kotlinx.coroutines.runBlocking { // runBlocking korutin scope-ot hoz létre
    println("Adatok betöltése...")
    val data = fetchData() // suspend függvény hívása
    println("Adatok: $data")
}