一、相关类图
弄清协程一些类和接口的关系,有助于大家整体对协程的理解
二、相关类种类
主要有以下四种相关类
1、协程作用域(CoroutineScope相关接口)
2、协程上下文(CoroutineContext相关接口)
3、协程分发器(CoroutineDispatcher相关类)
4、Job
三、相关类之间的关系
通过协程作用域的两种创建方式,来说各相类和接口的关系
方式1:
CoroutineScope(SupervisorJob()+Dispatchers.Main.immediate+
CoroutineName("DispatcherTest"));
将Job、Dispatchers.Main和CoroutineName 作为参数传入CoroutineScope,这时的CoroutineScope是一个顶层函数,也就是不在类体内的函数,它们之前用+号相连,是因为它们都属于CoroutineContext接口的实现类,CoroutineContext重载了加法操作符号。
/**
* CoroutineScope 接口对加法运算符进行了重载,可以用+号来接收一个Coroutine