记录一下学习的知识
1.什么是协程?
广义的协程是一种在程序中处理并发任务的方案; 并且协程也是这种方案的一个组件
例如:适配器模式是一种方案, 而项目中又存在具体的XxxAdapter,也是一个组件
广义的协程和线程属于一个层级的概念,属于并列的关系
例如:如果需要异步处理任务,你可以选择线程,也可以选择协程
2.什么是Kotlin for Java的协程?
Kotlin for Java的协程和广义的协程并不相同.
Kotlin for Java的协程底层是基于线程,是一个线程框架,最终还是使用线程池来完成异步任务
3.Android中的协程代码怎么写?
用launch来开启一段协程
把需要放在异步后台工作的函数,写成suspend函数,并且调用其他suspend函数来真正切换线程**
最简单的使用GlobalScope.launch { ... }
GlobalScope.launch {
showLog("Current Thread name: ${Thread.currentThread().name}")
}
打印结果: Current Thread name: DefaultDispatcher-worker-1, 这里可以看到不是主线程Main了
下面举个例子说明: 比如有几个函数
fun ioCode1(){
showLog("ioCode1 Thread name: ${Thread.currentThread().name}")
}
fun uiCode1(){
showLog("uiCode1 Thread name: ${Thread.currentThread().name}")