Junior — Middle
Ի՞նչ է կորյունների հիմնական դերը ծրագրավորման մեջ և ինչպե՞ս են նրանք տարբերվում թելերից։
sobes.tech AI
Պատասխան AI-ից
Կորուտինները թեթև կատարողական շղթաներ են, որոնք թույլ են տալիս ավելի պարզ և հասկանալի ձևով գրել ասինխրոն և մրցակցային կոդ: Android-ում (և Kotlin-ում) կորուտինները օգտագործվում են ֆոնային աշխատանքներ կատարելու համար առանց գլխավոր շղթան (UI շղթա) խոչընդոտելու:
Կորուտինների և շղթաների հիմնական տարբերությունները՝
- Թեթևություն: կորուտինները շատ ավելի քիչ ռեսուրսներ են պահանջում, քան համակարգային շղթաները:
- Կառավարում: կորուտինները կառավարում է ծրագրի ներսի պլանավորիչը, ոչ թե օպերացիոն համակարգը:
- Հանգեցում և վերականգնում: կորուտինները կարող են դադարեցվել որոշ կետերում (suspend) և վերականգնվել, ինչը հեշտացնում է ասինխրոն ծրագրավորումը:
Kotlin-ում Android-ի համար կորուտինների օգտագործման օրինակ՝
import kotlinx.coroutines.*
fun loadData() {
GlobalScope.launch(Dispatchers.Main) { // սկսում ենք կորուտին գլխավոր շղթայում
val data = withContext(Dispatchers.IO) { // անցում ֆոնային շղթա
fetchDataFromNetwork() // երկար հարցում
}
updateUI(data) // UI-ն թարմացնել
}
}
Այսպիսով, կորուտինները թույլ են տալիս գրել ասինխրոն կոդ, որը տեսք ունի որպես հաջորդական, առանց բարդ callback-ների և բլոկավորումների: