为什么调用join传入的block函数里面调用resume?

来源:12-2 案例:仿官方框架实现 launch 2

慕前端9039556

2020-10-16

调用了AbstractCoroutine的resumeWith说明协程执行完成了,状态机已经结束了。这时候还去调用resume不会出异常吗?

我断点跟了一下,好像join会创建一个单独的状态机?反正BaseContinuationImpl对象跟lunch那块不是一个。。

写回答

1回答

bennyhuo

2020-10-16

你说的是最后 completion.resume 吧。。。那是完成回调啊

1
6
bennyhuo
回复
慕前端9039556
主要是 suspend {} 会,普通的 suspend 函数不会的, 例如: suspend fun xyz() { } 字节码如下: public final static xyz(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
2020-10-18
共6条回复

学会Kotlin 突破开发语言瓶颈

如果有一门语言可以取代Java,那么它一定是Kotlin。

1760 学习 · 481 问题

查看课程