Junior — Middle
Kuidas on rakendatud asünkroonsus korutinate kasutamisel?
sobes.tech AI
Vastus AI-lt
Asünkroonsus korutinates saavutatakse peatamise ja jätkamise teel ilma niitide blokeerimiseta. Kui korutin kohtab aega nõudvat operatsiooni (näiteks võrgupäringut), siis see peatub (suspend), vabastades niidi teiste ülesannete jaoks. Pärast operatsiooni lõpetamist jätkub korutin samast kohast.
See on teostatav suspend funktsioonide ja kompilaatori mehhanismi kaudu, mis muudab korutinid lõplikeks olekumasinateks. Seega võimaldavad korutinid kirjutada asünkroonset koodi järjestuslikus stiilis ilma selgete tagasikutsumisteta.
Näide Kotlinis:
suspend fun fetchData(): String {
delay(1000) // peatab korutini 1 sekundiks, mitte blokeerides niiti
return "Data loaded"
}
fun main() = runBlocking {
val result = fetchData() // asünkroonselt ootab tulemust
println(result)
}