0

如何停止第二个线程以访问第一个线程正在使用的相同方法?

4

2 回答 2

2

一种选择是在方法中使用@synchronized。

- (NSString *)someMethod {
  @synchronized(self) {
      // do some work
  }
}

它允许调用该方法,但会自行同步并保护它的工作(更重要的是它正在处理的数据)。

于 2012-08-25T12:25:19.973 回答
0

看看 NSLock。

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSLock_Class/Reference/Reference.html

刚刚在寻找 C# lock 语句时发现它,它似乎做同样的事情..

还有另一个与同步有关的 SO 线程:

在 Objective-C 中 @synchronized 如何锁定/解锁?

于 2012-08-25T12:27:36.217 回答