我必須對大量文件執行復雜的操作。幸運的是,枚舉順序並不重要,並且可以在不鎖定的情況下並行完成作業。併發文件枚舉
是否該平臺提供了一種方式來做到這一點?由於缺乏更好的API,我在考慮:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSArray *paths = [[NSFileManager defaultManager] subpathsAtPath:folder];
[paths enumerateObjectsWithOptions:NSEnumerationConcurrent
usingBlock:^(NSString *path, NSUInteger idx, BOOL *stop) {
// Complex operation
}];
}];
有沒有更好的方法?
多數民衆贊成我如何寫它,也會好奇,知道是否有更好的方法。 –
您要查找多少併發數。您的代碼將在後臺運行,但不會同時運行多個文件操作。你也不應該在後臺線程上使用'defaultManager'。 – Wain
@Wain你能否闡述爲什麼(在答案中,也許)?我有興趣使用盡可能多的內核來並行處理文件。 – hpique