Sobes.tech
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 slovom suspend pred 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 suspend jasne 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.