线程何时会挂起暂停功能?

时间:2019-11-18 09:24:44

标签: kotlin kotlin-coroutines suspend

我只是在学习Kotlin的协程,我很好奇线程何时将挂起suspend函数。在Golang中,我们知道它会在几种情况下挂起goroutine。调用另一个goroutine,block-syscall,channeling,gc。科特琳的协程是一样的吗?

1 个答案:

答案 0 :(得分:0)

在Kotlin中,规则非常简单:协程永远不会自己暂停,您必须显式编写代码使其暂停。但是,在大多数使用情况下,此代码都包含在您调用的函数中。这是一个简单的示例:

val result = suspendCoroutine { continuation ->
    makeAsyncCall(onComplete = { continuation.resume(it) })
}