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