Sobes.tech
Junior — Middle

Korutinalardan istifadə edərkən asinxronluq necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Koroutinlardakı asinxronluq, icraatı dayandırıb yenidən başlatmaqla, iplikləri bloklamadan həyata keçirilir. Bir korutina vaxt alan əməliyyatla qarşılaşdıqda (suspend), o dayandırılır və digər tapşırıqlar üçün iplik sərbəst buraxılır. Əməliyyat tamamlandıqda, korutina eyni yerdən davam edir.

Bu, suspend funksiyaları və tərtibçi mexanizmi vasitəsilə həyata keçirilir; bu mexanizm koroutinləri son vəziyyət maşınlarına çevirir. Nəticədə, koroutinlər açıq çağırışlar olmadan ardıcıl tərzdə asinxron kod yazmağa imkan verir.

Kotlin nümunəsi:

suspend fun fetchData(): String {
    delay(1000) // korutini 1 saniyə dayandırır, ipliyi bloklamır
    return "Data loaded"
}

fun main() = runBlocking {
    val result = fetchData() // asinxron olaraq nəticəni gözləyir
    println(result)
}