1、挂起函数执行的顺序;
如果在协程中有多个挂起函数,其执行顺序就是常规代码的顺序
【案例】模拟2个挂起函数
日志:
2、使用 async 和 await 异步执行挂起函数;
根据前面知识知道协程代码在runBlocking中是顺序执行的,使用async可以异步执行,并且与GlobalScope.launch返回job不同,async可以通过await获取返回的值。
并且使用async和await代码可读性更强。
【案例】
日志:
3、协程的调度器;
所谓调度是指让协程在不同的线程上执行。
【案例 】不同的协程在不同的线程上执
日志:
如果不加join(执行顺序不是代码顺序)
4、父子协程;
在协程中启动另一个协程,前者叫父协程,后者叫子协程。当父协程被取消时,所有子协程也会递归地被取消。
例如:第一个请求后,还有若干个请求,但是由于第一个请求失败,之后的请求就没有意义了,所以需要整体取消,使用父子协程解决此类问题。
【案例】
日志: