<分区>
Possible Duplicate:
What does @synchronized() do?
我想知道 @synchronized
的真正作用以及什么最适合我的应用程序。
我有一个 NSMutableArray
,我将在后台线程中改变它并在前台线程中访问它。如果这意味着我可以从背景突变中获取更新的值,如果我在改变它的内容时访问数组,我希望稍微暂停访问数组。但是,我不是 100% 确定 NSLock
和 @synchronized
具体是如何工作的。
如果那不可能,是否可以改变数组的副本,完成后,在设置副本的内容时锁定属性/实例变量,以卡住任何访问器调用?
基本上,@synchronized(myArray) 是否会卡住任何访问器调用(让调用挂起直到锁释放然后执行)?
此外,是否可以使用 NSLock 锁定实例变量或属性?据我所知,它似乎只锁定代码块。