说到同步解决方案,我知道我可以使用很多东西来使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线程安全吗?
答案 0 :(得分:1)
是的,这就够了。只要您从同一个串行队列中读取和写入,就是安全的。