采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
为什么开启守护线程 resume就不执行了?那岂不是协程永远都是挂起状态么? 既然守护线程导致该协程永远被挂起,为啥 加了 join 就又调了resume?join无非就是注册了一个回调而已呀。他能影响到守护线程吗?老师能讲一下这块么。
守护线程在主线程执行完以后,进程就直接退出了,resume就来不及执行了。
在suspend main当中调用join,会一直等协程执行完才会退出。
调用了join,守护线程会等待,说明了join的调用会导致main线程没执行完。 可是join就是往disposableList注册了一个监听器。然后等待被回调。这个操作好像也不会影响到main线程执行吧
调用了join不是守护线程会等待。调用了join以后,join本身因为注册了一个完成回调,因此会挂起直到job执行完。 这时请注意suspend main函数本身是启动了一个线程的,这个协程当中遇到挂起函数会调用Object.wait等待,直到挂起函数恢复执行。
suspend main函数的原理我在 11-12节专门做了分析,同学应该看过了吧。
登录后可查看更多问答,登录/注册
如果有一门语言可以取代Java,那么它一定是Kotlin。
1.5k 4
1.6k 1
396 1
233 20
1.4k 16