我知道NSMutableArray不应被认为是线程安全的,但是如果我仅调用[array addObject:object]
并且这样做时不以其他任何方式访问该数组怎么办?
例如:
NSMutableArray* array = [[NSMutableArray alloc] init];
[self.subviews
enumerateObjectsWithOptions:NSEnumerationConcurrent
usingBlock:^(UIView* view, NSUInteger idx, BOOL *stop) {
if ([self methodThatReturnsBool:view]) [array addObject:view];
}];
感谢您的任何建议!:)
NSMutableArray不能保证是线程安全的-甚至不只是添加对象,因为要使该线程安全将需要addObject:
是原子操作,这不是该类协定的一部分。
通常,如果文档中说“这是线程安全的”,则它是线程安全的(至少是隔离的),但是如果文档中没有这样说,则应假定它是不安全的,并且需要使用同步。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句