Swift - 调度到主队列足以使var线程安全吗?

时间:2015-06-18 07:01:50

标签: ios swift

说到同步解决方案,我知道我可以使用很多东西来使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线程安全吗?

1 个答案:

答案 0 :(得分:1)

是的,这就够了。只要您从同一个串行队列中读取和写入,就是安全的。