6
暂停功能在Kotlin Coroutine中意味着什么
我正在阅读Kotlin Coroutine,并且知道它基于suspend功能。但是什么suspend意思呢? 协程或功能被暂停? 来自https://kotlinlang.org/docs/reference/coroutines.html 基本上,协程是可以在不阻塞线程的情况下挂起的计算 听说人们经常说“暂停功能”。但我认为是协程被暂停,因为它正在等待功能完成?“挂起”通常表示“停止操作”,在这种情况下,协程空闲。 🤔我们应该说协程暂停了吗? 哪个协程被暂停? 来自https://kotlinlang.org/docs/reference/coroutines.html 为了继续类推,await()可以是一个暂停函数(因此也可以从async {}块内调用),该例程可以暂停协程直到完成一些计算并返回其结果: async { // Here I call it the outer async coroutine ... // Here I call computation the inner coroutine val result = computation.await() ... } says它说“挂起协程直到完成计算”,但是协程就像轻量级线程。因此,如果协程被挂起,如何进行计算? 我们看到await被调用了computation,所以可能是asyncreturn Deferred,这意味着它可以启动另一个协程 fun computation(): Deferred<Boolean> { return async { true } } …