Middle
Šta znači ključna reč 'suspend' u Kotlinu?
sobes.tech АИ
Одговор од АИ
Ključna riječ suspend u Kotlinu se koristi za označavanje funkcije ili lambda izraza koji potencijalno može biti zaustavljen i kasnije nastavljen. Takve funkcije se nazivaju korutine.
Glavne osobine suspend funkcija:
- Mogu se samo pozivati iz druge
suspendfunkcije ili iz scope-a korutine. - Zaustavljanje funkcije ne blokira nit u kojoj se izvršava. Umjesto toga, nit može biti iskorišćena za izvršavanje drugih zadataka.
- Nakon izvršenja zaustavljene operacije (npr. mrežnog zahteva), funkcija nastavlja rad od mesta gde je zaustavljena.
- U pozadini, Kotlin kompajler transformiše
suspendfunkcije u mašine stanja koristeći Continuation-Passing Style (CPS).
Primer:
// Primer suspend funkcije za simulaciju duže operacije
suspend fun fetchData(): String {
// Simulacija mrežnog zahteva ili dužeg zadatka
kotlinx.coroutines.delay(1000) // Zaustavljanje bez blokiranja niti
return "Podaci primljeni"
}
// Funkcija koja poziva suspend funkciju
fun main() = kotlinx.coroutines.runBlocking { // runBlocking kreira scope korutine
println("Učitavanje podataka...")
val data = fetchData() // Poziv suspend funkcije
println("Podaci: $data")
}