我有一个属性(atomic,retain)NSString *标识符,可以从多个线程中读取。那么这是使其线程安全的正确方法 -
- (NSString *)identifier
{ @synchronized(self)
{
return [_identifier retain] autorelease];
}
}
或
- (NSString *)identifier
{ @synchronized(identifier)
{
return [_identifier retain] autorelease];
}
}
事实上,我想知道关键参数的用途是@synchronize(key)。谢谢你的帮助。
答案 0 :(得分:0)
@synchronized的参数是发生同步的对象。每个其他@synchronized(self)与同一个对象将停止,而另一个@synchronized(self)正在执行。
您可能希望发布实际编译的代码。那会告诉你第二个实际上并没有编译。