今天上了runBlocking课,有几个问题想跟老师同学们讨论一下

来源:12-5 案例:仿官方框架实现 runBlocking

慕前端9039556

2020-10-20

question1:老师说第三次打印joinBlocking说的太快,没听清,不过我认为是delay函数完成调用的resume,不知道是不是这样。
图片描述

question2:我在此处打印了 runBlocking,我不明白为啥这个东西能最先打印?BlockingQueueDispatcher里面也没有切换线程,都在主线程里。按理说block函数体应该先执行。才能走到后面的log(“runBlocking”)

图片描述

打印顺序如下:图片描述

question3: 另外还有一个小问题 不知道我为啥 打印线程名字的时候是[main null] 代码是我下载的,我看视频里也不是main null。。。

写回答

3回答

bennyhuo

2020-10-21

2. dispatch的时候只是放到队列里,因此没有执行。执行要等到joinBlocking。

1
8
bennyhuo
回复
慕前端9039556
。。。。
2020-10-22
共8条回复

bennyhuo

2020-10-21

3 那个 main是线程名,null是协程名, runBlocking 里面有名字,但外面是 suspend main,所以是null

0
2
bennyhuo
回复
慕前端9039556
我看错了,外面不是 suspend main,外面根本不是协程,所以没有协程名也很正常。 视频里面可能是放到另外的协程启动的吧,这个不是特别重要,不用太纠结。
2020-10-21
共2条回复

bennyhuo

2020-10-21

1. 是的

0
3
bennyhuo
runBlocking
2020-11-13
共3条回复

学会Kotlin 突破开发语言瓶颈

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

1760 学习 · 481 问题

查看课程