一、用法
1、关键字
- Dispatchers:Dispatchers决定协程在哪个线程上执行,主要有三种类型的调度程序,分别是IO,Default和Main。
1、IO:网络与磁盘相关工作
2、Default:CPU密集型工作(CPU利用率高)
3、Main:UI线程
4、Dispatchers.Unconfined:不限制,使用父Coroutine的现场
5、newSingleThreadContext:使用新的线程
当使用标准的协程 builder 创建协程时,可以指定该协程所运行的 CoroutineDispatcher,如果未指定,系统会默认使用 Dispatchers.Default
2、作用域构建器
(1)runBlocking
在任意地方调用,会阻塞线程 (测试环境中才会使用)
(2)GlobalScope.launch(Dispatchers.xxx)
在任意地方调用,创建顶层协程(不建议使用,顶层协程管理成本太高)
launch是无阻塞的,会返回一个 Job 对象,