作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是协程和 Kotlin 的新手。
为什么我得到不同的结果,下面的情况 1 和 2?
fun main(args: Array<String>) = runBlocking {
fun a() = async(CommonPool) {
println("start A")
delay(1000)
println("finish A")
}
fun b() = async(CommonPool) {
println("start B")
delay(1000)
println("finish B")
}
//case 1
a().await()
b().await()
//case 2
val A = a()
val B = b()
A.await()
B.await()
}
最佳答案
情况1等价于
val A = a()
await(A)
val B = b()
await(B)
A
,等待它(这里协程暂停),然后你才开始
B
, 因此
A
和
B
顺序执行,而不是同时执行。
A
和
B
然后协程挂起等待
A
和
B
.
关于kotlin 协程 val vs fun,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43373792/
在我的设置中,我试图有一个界面 Table继承自 Map (因为它主要用作 map 的包装器)。两个类继承自 Table - 本地和全局。全局的将有一个可变的映射,而本地的将有一个只有本地条目的映射。
Rust Nomicon 有 an entire section on variance除了关于 Box 的这一小节,我或多或少地理解了这一点和 Vec在 T 上(共同)变体. Box and Vec
我是一名优秀的程序员,十分优秀!