这个问题已经在这里有了答案:
9年前关闭。
Possible Duplicate:
How does @synchronized lock/unlock in Objective-C?
我有一个创建多个对象的应用程序。这些对象中的每个对象实际上都在不同的线程中运行,并在作为单独类一部分的
NSMutableArray
上运行。此类中有几种不同的方法可以枚举和更改数组,并且正如预期的那样,多个线程不能很好地使用此方法。我尝试将所有方法主体都放在@synchronized
块中,因为我读过某个地方,该方法一次只能将一个方法锁定到一个线程,但是似乎没有帮助。如何确保一次只有一个线程正在访问这些方法?
最佳答案
我不能说比苹果更好。看一看“使用@synchronized指令”部分。 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Multithreading/ThreadSafety/ThreadSafety.html
仔细检查您是否将同一同步/锁定对象传递给同步对象,以便线程不会访问同一部分。
关于iphone - @synchronized如何工作? [复制],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6990134/