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