我只是在学习Kotlin的协程,我很好奇线程何时会挂起suspend函数。在Golang中,我们知道它会在几种情况下挂起goroutine。调用另一个goroutine,block-syscall,channeling,gc。 Kotlin的协程是一样的吗?
最佳答案
在Kotlin中,规则非常简单:协程永远不会自行挂起,您必须显式编写代码使其挂起。但是,在大多数使用情况下,此代码都包含在您调用的函数中。这是一个简单的例子:
val result = suspendCoroutine { continuation ->
makeAsyncCall(onComplete = { continuation.resume(it) })
}
关于kotlin - 线程何时会挂起暂停功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58911378/