retrofit例子那块的疑问

来源:13-2 实践:回调转协程的完整写法

慕前端9039556

2020-11-02

俩问题
1.视频8:40那块的例子协程没有停止是不是因为外层是suspend main,cancelandJoin之后有挂起点没恢复导致suspend main内部那条线程一直在跑?

2.在安卓中没有suspend main,那到时候怎么调用job.join呢?(或者这么说:Android是否会默认有一个全局的Global.launch 我们的所有协程实际上都是它的子协程?)

写回答

2回答

bennyhuo

2020-11-03

2. suspend main韩式其实不过是编译器生成的main函数加了个普通协程而已,我在课程里面有剖析它的原理,同学可以看下目录找下这一节。android 不需要suspend main,需要协程的时候直接使用scope启动即可。

0
2
bennyhuo
回复
慕前端9039556
作用域本质就是个上下文,Global的上下文是一个空上下文,不是说其他作用域就要在他里面启动。
2020-11-04
共2条回复

bennyhuo

2020-11-03

1. suspend main 理论上在 join处应该会有返回,因此进程没有退出不是因为main函数没退出,具体原因可能跟某个线程池有关系。可以在main函数后面加一行来确认这一点。
0
0

学会Kotlin 突破开发语言瓶颈

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

1760 学习 · 481 问题

查看课程