Sobes.tech
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-ների և բլոկավորումների: