Sobes.tech
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.