implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9"
//kotlin协程Android支持
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9"
1.是什么?
协程和线程是平行的概念,广义上的协程是比较低成本,轻量的。
而kotlin中的协程是由kotlin官方提供的线程框架api,kotin中的协程不是轻量级的线程,因为它的底层是由java线程实现的
可以将本在不同线程运行的代码写在同一个代码块:
launch中的一段连续代码,就叫协程
2.suspend函数
suspend关键字本身不提供切换线程执行方法的功能,真正要实现挂起的功能需要在自己定义的挂起函数里面调用另一个挂起函数(此处为withContext,可把协程代码切到另一个线程执行,完毕后再切回来)
suspend关键字是一个提醒,是函数的创建者对函数调用者的提醒:这是一个耗时函数,请在协程里调用我
3.非阻塞式挂起
协程的非阻塞式挂起只是用阻塞的方式写出了非阻塞式的代码