Junior — Middle
Koja je osnovna uloga korutina u programiranju i čime se razlikuju od niti?
sobes.tech АИ
Одговор од АИ
Korutine su lagani tokovi izvršavanja koji omogućavaju pisanje asinhronog i konkurentnog koda na jednostavniji i razumljiviji način. Na Androidu (i Kotlinu), korutine se koriste za izvršavanje zadataka u pozadini bez blokiranja glavnog (UI) toka.
Glavne razlike između korutina i tokova:
- Laganost: korutine koriste mnogo manje resursa od sistemskih tokova.
- Upravljanje: korutine se upravljaju od strane planera unutar aplikacije, a ne od operativnog sistema.
- Pauza i nastavak: korutine mogu biti pauzirane na određenim tačkama (suspend) i nastavljene, što pojednostavljuje asinhrono programiranje.
Primer korišćenja korutina u Kotlinu za Android:
import kotlinx.coroutines.*
fun loadData() {
GlobalScope.launch(Dispatchers.Main) { // pokrećemo korutinu na glavnom thread-u
val data = withContext(Dispatchers.IO) { // prebacivanje na pozadinski thread
fetchDataFromNetwork() // dug zahtev
}
updateUI(data) // ažuriranje UI
}
}
Na ovaj način, korutine omogućavaju pisanje asinhronog koda koji izgleda kao sekvencijalni, bez složenih callback-ova i blokada.