可能重复:
What does @synchronized() do?@synchronized锁定iVar和/或财产?
我有什么@synchronized
确实,什么将是最适合我的应用程序的问题。
我有一个NSMutableArray
,我将在后台线程中进行变异并在前台线程中进行访问。如果在我改变它的内容的时候访问数组,如果它意味着我可以从背景突变中获取更新后的值,我很乐意轻松地访问数组。然而,我不能100%确定NSLock
s和@synchronized
是如何工作的。
如果这是不可能的,是否有可能改变数组的副本,当完成时,锁定属性/实例变量时设置它的副本的内容,以冻结任何访问者调用?
基本上,@synchronized(myArray)会冻结任何访问者调用(让这个调用挂起,直到锁放弃然后执行)?
此外,是否有可能锁定实例变量或属性与NSLock?从我所看到的,它似乎只锁定代码块。
调查Grand Central Dispatch ...这是一种更好的方式来执行多线程阵列逻辑。 – borrrden
@borrrden谢谢!这实际上是我目前如何处理多层逻辑。希望其他人也可以看到使用它。这很棒。 – RileyE