Middle
Čo je to suspend funkcia v jazyku Kotlin?
sobes.tech AI
Odpoveď od AI
Funkcia suspend — je funkcia v Kotlinu, ktorú je možné "pozastaviť" (suspend) a neskôr "obnoviť" (resume). Používa sa na písanie asynchrónneho, neblokujúceho kódu v imperatívnom štýle, čo uľahčuje prácu s dlhodobými operáciami, ako sú sieťové požiadavky alebo operácie s databázou.
Kľúčové vlastnosti suspend funkcií:
- Modifikátor
suspend: Vyhlási sa kľúčovým slovomsuspendpred názvom funkcie. - Práca s korutinami: Sú volané iba z iných suspend funkcií alebo z builderov korutín (napríklad
launch,async). - Neblokujúca povaha: Pozastavenie suspend funkcie neblokuje vlákno, na ktorom sa vykonáva. Namiesto toho je vlákno uvoľnené na vykonávanie iných úloh, a keď je výsledok asynchrónnej operácie pripravený, pokračuje vykonávanie funkcie od miesta pozastavenia.
- Explicitné označenie: Modifikátor
suspendjasne ukazuje, že volanie tejto funkcie môže byť dlhá operácia a nemalo by sa vykonávať priamo v hlavnom vlákne (UI vlákne).
Príklad:
// Bežná funkcia
fun fetchDataBlocking(): String {
// Blokujúci sieťový volanie, môže sa zaseknúť
Thread.sleep(2000)
return "Dáta prijaté"
}
// Suspend funkcia
suspend fun fetchDataNonBlocking(): String {
// Asynchrónne sieťové volanie
// Korutina sa tu pozastaví, vlákno nie je blokované
delay(2000) // Príklad suspend funkcie, ktorá simuluje oneskorenie
return "Dáta prijaté asynchrónne"
}
Suspend funkcie sú základom pre tvorbu ľahko čitateľného a udržiavateľného asynchrónneho kódu s využitím korutín.