Junior — Middle
Milliseid ülesannete täitmise viise sa tead Coroutines'is?
sobes.tech AI
Vastus AI-lt
Kotlin Coroutines-да задачаларды бир нече жол менен аткарууга болот:
-
launch — жаңы coroutine баштайт, ал параллелдүү иштейт жана натыйжа кайтарбайт. Арткы пландагы тапшырмалар үчүн колдонулат, анда натыйжа керек эмес.
-
async — натыйжасы Deferred түрүндө кайтарган coroutine баштайт, ал await() аркылуу натыйжаны алууга мүмкүндүк берет. Натыйжасы бар параллел эсептөөлөр үчүн ылайыктуу.
-
runBlocking — учурдагы агымды, coroutine бүтө турганча, бөгөттөйт жана көбүнчө main функцияларында же тесттерде колдонулат.
-
withContext — аткаруу контекстин өзгөртөт (мисалы, Dispatchers.IO үчүн кирүү-чыгуу операциялары үчүн) жана код блогун аткарат, натыйжаны кайтарат.
Мисал:
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000)
println("launch ичиндеги тапшырма")
}
val result = async {
delay(500)
42
}
println("async натыйжасы: ${result.await()}")
}