Sobes.tech
Junior — Middle

Aká je hlavná úloha korutín v programovaní a ako sa líšia od vlákien?

sobes.tech AI

Odpoveď od AI

Korutiny sú ľahké vykonávacie vlákna, ktoré umožňujú písanie asynchrónneho a konkurenčného kódu jednoduchším a zrozumiteľnejším spôsobom. V Android (a Kotlin) sa korutiny používajú na vykonávanie úloh na pozadí bez blokovania hlavného vlákna (UI vlákna).

Hlavné rozdiely medzi korutinami a vláknami:

  • Ľahkosť: korutiny spotrebujú oveľa menej zdrojov ako systémové vlákna.
  • Správa: korutiny sú riadené plánovačom vnútri aplikácie, nie operačným systémom.
  • Pozastavenie a pokračovanie: korutiny môžu byť pozastavené na určitých miestach (suspend) a pokračovať, čo zjednodušuje asynchrónne programovanie.

Príklad použitia korutiny v Kotlin pre Android:

import kotlinx.coroutines.*

fun loadData() {
    GlobalScope.launch(Dispatchers.Main) { // spustenie korutiny na hlavnom vlákne
        val data = withContext(Dispatchers.IO) { // prechod na pozadie
            fetchDataFromNetwork() // dlhý dopyt
        }
        updateUI(data) // aktualizácia UI
    }
}

Takto korutiny umožňujú písanie asynchrónneho kódu, ktorý vyzerá ako sekvenčný, bez zložitých callbackov a blokovaní.