【发布时间】:2019-12-30 11:19:54
【问题描述】:
来自the documentation of runBlocking 是否清楚为什么在协程中使用它没有意义,例如嵌套它。
它甚至明确指出:
这个函数不应该在协程中使用。
但是,可以这样做:
fun main(args: Array<String>) {
runBlocking {
runBlocking {
println("hi")
}
}
}
(IntelliJ)IDE 有点抱怨
但代码可以编译并运行。
如果在更复杂的环境中意外完成,会发生什么情况?崩溃?或者可能是死锁?
【问题讨论】:
-
runBlocking产生新的协程范围以从“常规”代码块运行暂停代码。你想通过嵌套它们来实现什么? -
@Pawel 我不想嵌套它们。 :) 只是,我在某个项目中目睹了它(它已经修复),我有兴趣了解可能发生的事情。
标签: kotlin coroutine kotlin-coroutines