【发布时间】:2019-06-27 13:45:37
【问题描述】:
我正在试验 Kotlin 协程。
假设我有一个可变列表:
val list = mutableListOf<String>()
我启动了 50 个这样的 couroutine:
runBlocking {
for (i in 1..50) {
launch(Dispatchers.IO) {
delay(1000)
list.add(i.toString())
}
}
}
list.forEach { println(it) }
显然,尽管有“延迟(1000)”,但这些操作将需要大约一秒钟,因为它们是异步运行的
这些是不会导致问题的简单操作,但是如果我同时编写很多大字符串怎么办,某些操作会失败吗?
如果使用 appendText 函数写入本地文件,会不会因为文件可能被另一个写入操作锁定而导致某些操作失败?
【问题讨论】: