Sobes.tech
Junior — Middle

Kā tiek īstenota asinhronitāte, izmantojot korutinas?

sobes.tech AI

Atbilde no AI

Asinhronitāte korutīnās tiek panākta, apturot un atsākt izpildi bez pavedienu bloķēšanas. Kad korutīna sastop operāciju, kas var aizņemt laiku (piemēram, tīkla pieprasījumu), tā tiek apturēta (suspend), atbrīvojot pavedienu citām uzdevumiem. Pēc operācijas pabeigšanas korutīna atsākas no tās pašas vietas.

Tas tiek īstenots ar suspend funkcijām un kompilatora mehānismu, kas korutīnas pārvērš par stāvokļu automātiem. Tādējādi korutīnas ļauj rakstīt asenhronisku kodu secīgos stilā bez skaidriem atgriezieniem.

Piemērs Kotlin:

suspend fun fetchData(): String {
    delay(1000) // aptur korutīnu uz 1 sekundi, neblokējot pavedienu
    return "Data loaded"
}

fun main() = runBlocking {
    val result = fetchData() // asinhroni gaida rezultātu
    println(result)
}