关于挂起函数的问题
来源:11-6 Kotlin 协程的基本要素2

不是蠢名字
2020-05-18
suspend {
test1()
}.startCoroutine(object : Continuation<Unit> {
override val context: CoroutineContext = EmptyCoroutineContext
override fun resumeWith(result: Result<Unit>) {
}
})
suspend fun test1() {
test2()
}
suspend fun test2(): Int = suspendCoroutine<Int> {
thread {
it.resume(3)
}
}```
老师好,如果像我这么写test2中的it指的是哪个continuation,能跟我说说里面continuation的关系吗,感觉有点乱了。还有就是能看到给我们生成的那个SuspendLambda类吗,如果能看应该怎么看
写回答
3回答
-
bennyhuo
2020-05-18
我看了下你之前也提过类似的问题,你在本节提的上一个问题里面我把Java代码模拟协程的逻辑的源码上传了,不知道同学有没有看到?
022020-05-19 -
bennyhuo
2020-05-18
挂起函数有个隐含的参数就是continuation,test2的 it 来自于 test1, test1的又来自于调用它的协程,想要看的话可以看下字节码,不过字节码看起来比较晦涩,建议同学重点看下视频当中我用 java 代码模拟 kotlin协程的那几页ppt来理解一下
00 -
bennyhuo
2020-05-18
continuation的关系视频里面有呀,同学是对视频里面的这块不理解吗?
00
相似问题