Middle
Ce este o funcție suspend în Kotlin?
sobes.tech AI
Răspuns de la AI
Funcția suspend — este o funcție în Kotlin care poate fi "oprită" (suspend) și ulterior "reluată" (resume). Este utilizată pentru a scrie cod asincron și non-blocant în stil imperativ, ceea ce simplifică lucrul cu operațiuni pe termen lung, cum ar fi solicitările de rețea sau operațiunile cu baza de date.
Caracteristici cheie ale funcțiilor suspend:
- Modificatorul
suspend: Se declară cu cuvântul cheiesuspendînaintea numelui funcției. - Lucru cu corutine: Sunt apelate doar din alte funcții suspend sau din constructorii de corutine (de exemplu,
launch,async). - Natură non-blocantă: Suspendarea unei funcții suspend nu blochează firul pe care se execută. În schimb, firul este eliberat pentru a efectua alte sarcini, iar când rezultatul operației asincrone este gata, execuția funcției se reia de la punctul de suspendare.
- Marcaj explicit: Modificatorul
suspendindică clar că apelul acestei funcții poate fi o operație lungă și nu trebuie executată direct pe firul principal (fir UI).
Exemplu:
// Funcție normală
fun fetchDataBlocking(): String {
// Apel de rețea blocant, poate să se blocheze
Thread.sleep(2000)
return "Date primite"
}
// Funcție suspend
suspend fun fetchDataNonBlocking(): String {
// Apel de rețea asincron
// Corutina se suspendă aici, firul nu se blochează
delay(2000) // Exemplu de funcție suspend care simulează o întârziere
return "Date primite asincron"
}
Funcțiile suspend sunt fundamentul pentru construirea unui cod asincron ușor de citit și întreținut, utilizând corutine.