【发布时间】:2018-11-30 07:12:52
【问题描述】:
挂起函数在单独的线程上运行? 如果不是,那么性能优势是什么?
suspend fun requestToken():Token {..} // takes 2 sec to complete
suspend fun createPost (token:Token){..} // takes 3 sec to complete
suspend fun postItem() {
val token = requestToken()
val post =createPost(token)
processPost(post)
}
所以,当我们到达 processPost(post) 并且如果挂起函数没有在单独的线程上运行,那么我们必须等待 requestToken() 和 createPost(token) 方法 完成(即 2+3= 5 秒)。按照作者的说法,挂起是异步的,但如果我们不产生任何新线程,那么我们如何实现异步行为?
【问题讨论】:
-
你应该阅读documentations
标签: kotlin coroutine kotlinx.coroutines