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)
}