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í.