本系列文章都使用 Kotlin 作为描述语言
协程是什么?协程用来做什么?怎么用?
作为安卓开发需要知道的协程知识
协程是什么?
首先,回答一个问题,函数是什么?
函数是一串计算机指令,包含输入参数和输出。
例如:
fun findFriend(): Friend? {
throw NotForProgrammerException()
return null
}
协程记录(或者说描述)了这一串计算机指令执行所需要的环境,包括内存变量等。
为什么协程对于安卓开发很重要?
安卓的UI显示,是受一个主线程控制的,若要在程序中请求类似要加载网络资源,这种耗时操作,会让主线程等待,如:
initViews()
updateUI()
doNetReq()
updateUI()
println("Hi from the main thread")
updateUI()
若使用协程就可避免主线程的等待,如:
initViews()
updateUI()
Thread{
doNetReq()
}.start()
updateUI()
println("Hi from the main thread")
updateUI()
多线程用来做什么
故多线程用来处理:网络请求(Network Calls),数据库,复杂计算(Complex Calculations),其他操作
协程与多线程的区别
协程是运行在线程内的
协程是可中止的
协程易于切换上下文(Context)
关键词
协程(Coroutines),线程(Threads)
网友评论