当涉及到同步解决方案时,我知道可以使用很多东西来使var线程安全。但是我的问题是这样的:
由于主队列是串行的,因此对其进行调度是否足以使var安全进行异步读/写操作?
假设我有一个Int数组:
var myArr: [Int] = []
每当我需要更新它时,我都会使用主队列:
let newVal = 123
dispatch_async(dispatch_get_main_queue(), { () -> Void in
myArr.append(newVal)
})
每当我需要阅读它时:
dispatch_async(dispatch_get_main_queue(), { () -> Void in
println(myArr.count)
})
这足以使myArr线程安全吗?
最佳答案
是的,这就足够了。只要您从同一串行队列读取和写入,就可以保证安全。
关于ios - Swift-调度到主队列是否足以使var线程安全?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30908541/