Junior — Middle
Coroutines'da vazifalarni bajarishning qanday usullarini bilasiz?
sobes.tech AI
AIdan javob
Kotlin Coroutines'da vazifalar bir necha usul bilan bajarilishi mumkin:
-
launch — yangi coroutine boshlaydi, u parallel ravishda ishlaydi va natija qaytarmaydi. Orqa fon vazifalari uchun ishlatiladi, natija kerak emas.
-
async — natija bilan Deferred shaklida natija qaytaradigan coroutine boshlaydi, await() orqali natijani olish mumkin. Natija bilan parallel hisoblashlar uchun mos keladi.
-
runBlocking — hozirgi oqimni, coroutine tugaguncha bloklaydi va ko'pincha main funksiyalarida yoki testlarda ishlatiladi.
-
withContext — bajarilish kontekstini o'zgartiradi (masalan, Dispatchers.IO ga kirish-chiqish operatsiyalari uchun) va kod blokini bajaradi, natijani qaytaradi.
Misol:
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000)
println("launch ichidagi vazifa")
}
val result = async {
delay(500)
42
}
println("async natija: ${result.await()}")
}