Sobes.tech
Junior — Middle

Ինչպե՞ս է իրականացնում ասինխրոնությունը կուռտինների օգտագործման ժամանակ։

sobes.tech AI

Պատասխան AI-ից

Ասինխրոնությունը կորուտիններում հասնում է դադարեցման և վերականգնման միջոցով՝ առանց հոսքերի բլոկավորման: Երբ կորուտին հանդիպում է ժամանակատար գործողության (օրինակ՝ ցանցային հարցում), այն դադարում է (suspend), ազատելով հոսքը այլ առաջադրանքների համար: Օրինակի ավարտից հետո կորուտինը վերականգնվում է նույն տեղից:

Սա իրականացնում է suspend ֆունկցիաների և կոմպիլյատորի մեխանիզմների միջոցով, որոնք փոխակերպում են կորուտինները վերջնական վիճակային ավտոմատների: Այսպիսով, կորուտինները թույլ են տալիս գրել ասինխրոն կոդը սերիական ոճով՝ առանց բացահայտ callback-ների:

Օրինակ Kotlin-ում:

suspend fun fetchData(): String {
    delay(1000) // դադարեցնում է կորուտինն 1 վայրկյան՝ առանց բլոկավորելու հոսքը
    return "Data loaded"
}

fun main() = runBlocking {
    val result = fetchData() // ասինխրոն սպասում է արդյունքին
    println(result)
}