【发布时间】:2011-08-26 18:39:55
【问题描述】:
在 Cocoa/Objective C 中,静态类方法是线程安全的吗?我正在定义一个类来发出相关的自定义 URL 请求,我想从许多不同的线程中调用它。假设我有一堂课:
@interface URLConnector : NSObject {
}
+(Response *)getData:(NSString *)category;
+(Response *)put:(NSString *)category content:(NSData *)content;
@end
每个方法定义一个 NSMutableURLRequest,调用它,并使用 NSRunLoop:runUntilDate: 来等待响应。他们还创建另一个类 URLConnectorDelegate 的实例来处理来自 NSMutableRequests 的回调,并在返回之前释放它们。 (注意:此代码基于用于发出 URL 请求的流行公共库)
我喜欢这种方法的地方在于,它使所有线程保持简单,并将所有与服务器相关的自定义代码放在一个地方。线程可以通过单个函数调用来执行 URL 请求。
我的所有线程都可以同时使用这些静态函数来进行同时调用吗(即静态 Objective-c 方法本质上是线程安全的)?
【问题讨论】:
标签: objective-c cocoa thread-safety