Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 线程何时将挂起挂起函数?_Kotlin_Kotlin Coroutines_Suspend - Fatal编程技术网

Kotlin 线程何时将挂起挂起函数?

Kotlin 线程何时将挂起挂起函数?,kotlin,kotlin-coroutines,suspend,Kotlin,Kotlin Coroutines,Suspend,我刚刚了解了Kotlin的协同程序,我很好奇线程何时会挂起一个挂起函数。在Golang,我们知道它会在一些情况下暂停goroutine;调用另一个goroutine、block syscall、channeling、gc。Kotlin的协同程序相同吗?在Kotlin中,规则非常简单:协同程序本身从不挂起,您必须显式编写代码使其挂起。不过,在大多数使用场景中,这些代码都隐藏在您调用的函数中。下面是一个简单的例子: val result = suspendCoroutine { continuati

我刚刚了解了Kotlin的协同程序,我很好奇线程何时会挂起一个挂起函数。在Golang,我们知道它会在一些情况下暂停goroutine;调用另一个goroutine、block syscall、channeling、gc。Kotlin的协同程序相同吗?

在Kotlin中,规则非常简单:协同程序本身从不挂起,您必须显式编写代码使其挂起。不过,在大多数使用场景中,这些代码都隐藏在您调用的函数中。下面是一个简单的例子:

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

你研究了什么?包括你所做的研究,让我们知道你到底想知道什么。欢迎来到SO!在一个问题中应该有一个最小的内容:输入样本(如果需要)、预期输出样本(需要)、您尝试了什么、您研究了什么。。。