安卓协程那些事儿

2022-06-28  本文已影响0人  itBox

本系列文章都使用 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)

上一篇 下一篇

猜你喜欢

热点阅读