【发布时间】:2020-01-07 10:41:08
【问题描述】:
上下文
遵循this point 的 Kotlin 协程基础指南
使用此代码
fun coroutinesAreLightWeight()
{
runBlocking {
repeat(100_000) {
launch {
delay(1000L)
print("$it, ")
}
}
}
}
问题
当我在我的计算机上运行该程序时,它会一次性打印出所有数字,而不是等待 1 秒后打印下一个数字。在运行 kotlin 指南中看到的确切代码时,此行为是相同的。似乎 delay() 函数被忽略了
起初这段代码运行良好,但随后停止按预期运行。我正在使用 IntelliJ 2019.2.1 和 kotlin 版本 1.3.50,我尝试重新启动程序,但这并没有解决我的问题。
这是整个班级的样子
class CoroutinesBasics
{
fun ...
fun ...
fun coroutinesAreLightWeight()
{
runBlocking {
repeat(100_000) {
launch {
delay(1000L)
print("$it, ")
}
}
}
}
}
coroutinesAreLightWeight() 函数是这样调用的
fun main()
{
CoroutineBasics().apply{
....
....
coroutinesAreLightWeight()
}
}
谁能指出发生了什么?这是 Kotlin 的错误吗?
Kotlin 依赖项
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.0'
【问题讨论】:
标签: kotlin concurrency kotlin-coroutines