Junior — Middle
Mis on korutinate peamine roll programmeerimises ja kuidas need erinevad lõngadest?
sobes.tech AI
Vastus AI-lt
Korutid on kerge täitmisvoogud, mis võimaldavad kirjutada asünkroonset ja konkurentsivõimelist koodi lihtsama ja arusaadavama viisi. Androidis (ja Kotlinis) kasutatakse korutine, et täita taustatöid ilma peamise (UI) voo blokeerimata.
Peamised erinevused korutinite ja voogude vahel:
- Kergekaalulisus: korutid kasutavad palju vähem ressursse kui süsteemi vood.
- Haldus: korutid hallatakse rakenduse sees oleva planeerija poolt, mitte operatsioonisüsteemi poolt.
- Peatus ja jätkamine: korutid võivad peatuda teatud punktides (suspend) ja jätkata, mis lihtsustab asünkroonset programmeerimist.
Näide korutini kasutamisest Kotlinis Androidi jaoks:
import kotlinx.coroutines.*
fun loadData() {
GlobalScope.launch(Dispatchers.Main) { // alustame korutini peamisel voolul
val data = withContext(Dispatchers.IO) { // lülitame taustavoolu
fetchDataFromNetwork() // pikk päring
}
updateUI(data) // uuendame kasutajaliidest
}
}
Seega võimaldavad korutid kirjutada asünkroonset koodi, mis näeb välja nagu järjestikune, ilma keeruliste tagasikutsumiste ja blokeerimisteta.