Sobes.tech
Junior — Middle

Korutinalardan foydalanishda asinxronlik qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

Koroutinlardagi asinxronlik, bajarilishni to'xtatish va qayta boshlash orqali, oqimlarni bloklamasdan amalga oshiriladi. Koroutine vaqt oladigan operatsiya bilan uchrashganda (suspend), u to'xtatiladi va boshqa vazifalar uchun oqim bo'shatiladi. Operatsiya tugagach, koroutine ayni joydan davom etadi.

Bu suspend funksiyalari va kompilyator mexanizmi orqali amalga oshiriladi, bu mexanizm koroutinlarni holat mashinalariga aylantiradi. Natijada, koroutinlar aniq qayta chaqirmalar bo'lmagan ketma-ket yozilgan asinxron kod yozishga imkon beradi.

Kotlin misoli:

suspend fun fetchData(): String {
    delay(1000) // koroutinani 1 sekundga to'xtatadi, oqimni bloklamaydi
    return "Data loaded"
}

fun main() = runBlocking {
    val result = fetchData() // asinxron tarzda natijani kutamiz
    println(result)
}