Middle
Šta je suspend funkcija u jeziku Kotlin?
sobes.tech АИ
Одговор од АИ
Funkcija suspend — to funkcija u Kotlinu koja može biti "zaustavljena" (suspend) i kasnije "nastavljena" (resume). Koristi se za pisanje asinhronog i neblokirajućeg koda u imperativnom stilu, što olakšava rad sa dugotrajnim operacijama kao što su mrežni zahtevi ili operacije sa bazom podataka.
Ključne osobine suspend funkcija:
- Modifikator
suspend: Deklariše se ključnom rečisuspendpre imena funkcije. - Rad sa korutinama: Pozivaju se samo iz drugih suspend funkcija ili iz buildera korutina (npr.
launch,async). - Ne blokirajuća priroda: Zaustavljanje suspend funkcije ne blokira nit na kojoj se izvršava. Umesto toga, nit se oslobađa za izvršavanje drugih zadataka, a kada je rezultat asinhrone operacije spreman, izvršavanje funkcije se nastavlja od mesta zaustavljanja.
- Jasno označavanje: Modifikator
suspendjasno ukazuje da poziv ove funkcije potencijalno može biti dugotrajan i ne bi trebalo da se izvršava direktno na glavnoj niti (UI niti).
Primer:
// Obična funkcija
fun fetchDataBlocking(): String {
// Blokirajući mrežni poziv, može da se zaglavi
Thread.sleep(2000)
return "Podaci primljeni"
}
// Suspend funkcija
suspend fun fetchDataNonBlocking(): String {
// Asinhroni mrežni poziv
// Korutina se ovde zaustavlja, nit se ne blokira
delay(2000) // Primer suspend funkcije koja simulira kašnjenje
return "Podaci primljeni asinhrono"
}
Suspend funkcije su osnova za izgradnju lako čitljivog i održivog asinhronog koda koristeći korutine.