【发布时间】:2020-11-16 19:51:29
【问题描述】:
在下面的示例中(来自 Kotlin 文档),有嵌套的回调函数。
假设在主线程上调用了postItem,那么在调用preparePostAsync 之后,主线程是否会立即继续执行而不等待preparePostAsync 完成?
如果是,这是否意味着 Kotlin 实际上是在回调函数的掩护下执行多线程? (假设这是真的,是不是意味着回调数=线程数?)
fun postItem(item: Item) {
preparePostAsync { token ->
submitPostAsync(token, item) { post ->
processPost(post)
}
}
}
如果和多线程无关,那么回调函数和多线程有什么区别?
【问题讨论】:
-
这与 Kotlin 正在做什么无关,而与
preparePostAsync和submitPostAsync的实现所做出的决定有关。这些函数可能会在其他线程上调用这些回调,也可能不会; Kotlin 不会为他们做出这个决定。
标签: multithreading kotlin callback