1

这段代码执行起来安全吗?也就是说,同时添加到 NSMutableArray 或 NSMutableDictionary 是否安全?

- (NSArray *)batchProcess:(NSArray *)inputList {
    NSMutableArray *outputList = [NSMutableArray arrayWithCapacity:inputList.count];

    [inputList enumerateObjectsWithOptions:NSEnumerationConcurrent 
               usingBlock:^(id thing, NSUInteger index, BOOL *stop){
        id processedThing = [self doProcessingOn:thing];

        [outputList addObject:processedThing];
    }];

    return outputList;
}
4

1 回答 1

0

同时添加到 NSMutableArray 或 NSMutableDictionary 是否安全?

除非您提供自己的同步机制来保证在任何给定时间只有一个线程使用它,否则它是不安全的。如果您以非线程安全的方式使用它,您应该期待未定义的行为。

于 2013-06-13T07:07:13.583 回答