当涉及到同步解决方案时,我知道可以使用很多东西来使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/

10-12 14:35
查看更多