Sobes.tech
Junior — Middle

Ako informuje suspendovaná funkcia o svojom dočasnom zastavení vykonávania?

sobes.tech AI

Odpoveď od AI

Funkcia suspend v Kotlinu oznamuje dočasné pozastavenie svojej exekúcie pomocou mechanizmu korutín. Pri volaní suspend funkcie môže byť exekúcia pozastavená bez blokovania vlákna a stav funkcie je uložený v špeciálnom objekte nazývanom Continuation. Keď je funkcia pozastavená, vracia riadenie volajúcemu, a po dokončení asynchrónnej operácie sa exekúcia obnoví zo toho istého miesta.

Príklad:

suspend fun fetchData(): String {
    delay(1000) // pozastaví korutínu na 1 sekundu
    return "Dáta načítané"
}

Tu je delay suspend funkcia, ktorá pozastavuje exekúciu korutiny bez blokovania vlákna a obnoví ju po 1 sekunde.