CoroutineScope launch等待await异步协程async结果返回,Kotlin
import kotlinx.coroutines.*
fun main(args: Array<String>) {
runBlocking {
println("async ...")
val task = async(context = Dispatchers.IO, start = CoroutineStart.LAZY) {
println("async delay... ${System.currentTimeMillis()}")
delay(3000)
println("async delay end ${System.currentTimeMillis()}")
"zhangphil"
}
println("async end")
println("launch ...")
CoroutineScope(Dispatchers.IO).launch {
println("launch await ...")
val r = task.await()
println("launch await : $r ${System.currentTimeMillis()}")
}
println("launch end")
}
}
async ...
async end
launch ...
launch end
launch await ...
async delay... 1703750881366
async delay end 1703750884380
launch await : zhangphil 1703750884381
kotlin用CoroutineScope启动协程async等待结果返回_kotlin协程等待另一个线程结果-CSDN博客文章浏览阅读1k次。一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可以设计一种托管的函数,在托管的函数里面干脏活,处理完成后,把结果抛到主线程。结果1-a: 5 - tid:22。一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可以设计一种托管的函数,在托管的函数里面干脏活,处理完成后,把结果抛到主线程。_kotlin协程等待另一个线程结果https://blog.csdn.net/zhangphil/article/details/129270875kotlin协程async与await_安卓协程await-CSDN博客文章浏览阅读574次。runBlocking 内部启动的3个协程做耗时操作,从输出可以看到3个协程交叉并发执行,runBlocking 会等到3个协程执行结束后才退出,输出结果有明确先后顺序。一般编程的技法,比如,在Android中,假设在主线程中实现了一个函数,但该函数是耗时操作,毫无疑问,需要将这个函数的实现切入非主线程中操作,那么可以设计一种托管的函数,在托管的函数里面干脏活,处理完成后,把结果抛到主线程。结果1-a: 5 - tid:22。结果1-b: 5 - tid:24。结果2-a: 9 - tid:22。_安卓协程awaithttps://blog.csdn.net/zhangphil/article/details/129268399