为确保线程安全,如何同步NSMutableArray?

12

我有一个多线程应用程序,其中包含一个NSMutableArray,其中包含NSManagedObjects,现在我希望我的数组一次只能被任何一个线程访问。那么我该如何同步这个数组,或者可能对其放置锁机制。

提前感谢...

1个回答

19

你可以将对该类的每个访问都包装在以下代码块中:

@synchronized(myArray) {
  [myArray doSomething];
}

虽然这个解决方案能够工作,但它可能是同步写入数组最慢的方式,而且它会阻塞调用者,所以如果你尝试从不同的并发线程调用,实际上会强制它们进行同步。最好的做法是将写入操作分派到某个异步串行队列中。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接