…
}
挂起函数写法:
suspend fun getCard() {
…
}
suspend关键字作用:
提醒 这个函数的调用者: 我是一个耗时的函数, 请在协程中调用我。
挂起函数作用
说了半天,为什么要用挂起函数?
挂起的意思是:暂时从当前线程脱离,一会儿再切/恢复回来(resume)
当一个函数从当前线程A挂起后,就出现了两条线:
- A线程:该执行什么执行什么,比如刷新界面,或者没有其他事情可做就被回收再利用
- 挂起函数:切换到指定线程,并从被挂起的那行代码开始,继续向下执行代码,执行完以后,再切回到A线程
举个例子吧:
安卓开发中,主线程Main正在执行任务,执行到一个网络请求N(挂起函数)时,N脱离主线程,到指定的IO线程做网络请求。 然后线程Main将继续渲染界面(比如转圈圈loading),等N在IO线程执行结束后,切回Main线程,拿着刚请求完的值,继续做后序操作(比如loading结束,显示请求回来的数据结果)
挂起函数问题
- 挂起的对象是协程
- 挂起函数只能在另一个挂起函数或者协程中被调用:why?
因为,切走再恢复&#