Sobes.tech
Junior — Middle

Jaká je hlavní role korutin v programování a čím se liší od vláken?

sobes.tech AI

Odpověď od AI

Korutiny jsou lehké výkonné vlákna, která umožňují psaní asynchronního a konkurenčního kódu jednodušším a srozumitelnějším způsobem. V Androidu (a Kotlinu) se korutiny používají k provádění úkolů na pozadí bez blokování hlavního vlákna (UI vlákna).

Hlavní rozdíly mezi korutinami a vlákny:

  • Lehkost: korutiny spotřebují mnohem méně zdrojů než systémová vlákna.
  • Správa: korutiny jsou řízeny plánovačem uvnitř aplikace, nikoli operačním systémem.
  • Pozastavení a obnovení: korutiny mohou být pozastaveny na určitých místech (suspend) a obnoveny, což zjednodušuje asynchronní programování.

Příklad použití korutiny v Kotlinu pro Android:

import kotlinx.coroutines.*

fun loadData() {
    GlobalScope.launch(Dispatchers.Main) { // spouštíme korutinu na hlavním vlákně
        val data = withContext(Dispatchers.IO) { // přepínáme na pozadí
            fetchDataFromNetwork() // dlouhý požadavek
        }
        updateUI(data) // aktualizujeme UI
    }
}

Tímto způsobem korutiny umožňují psaní asynchronního kódu, který vypadá jako sekvenční, bez složitých callbacků a blokování.