【发布时间】:2023-02-16 01:21:56
【问题描述】:
这是示例代码:
var dict = [Int: Int]()
for i in 0...100 {
DispatchQueue.global().async {
dict[i] = i
}
}
我知道快速收集不是线程安全的。但是让我感到困惑的是它为什么会崩溃。键和值是一个Int,它是值类型。
【问题讨论】:
-
I know swift collection is not thread safe<- 这个。 -
我猜
.global()是并发队列。这意味着两个或多个操作同时改变dict。 -
那么,为什么并发写入会导致崩溃呢?记忆中发生了什么?
标签: swift thread-safety