我今天开始在 Android 上使用 Kotlin 协程,我注意到 Anko 有一套自己的辅助方法。我理解为什么asReference()
存在,但我不知道为什么会存在,bg()
因为核心协程库已经有了async()
.
bg()
代码非常简单,它在async()
内部使用:
@PublishedApi
internal var POOL = newFixedThreadPoolContext(2 * Runtime.getRuntime().availableProcessors(), "bg")
inline fun <T> bg(crossinline block: () -> T): Deferred<T> = async(POOL) {
block()
}
那么使用bg()
而不是有什么好处async()
呢?async()
Android应用程序在某种程度上效率低下吗?