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
suspendfü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ó
suspendfü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")
}