gpt4 book ai didi

ios - 并发文件枚举

转载 作者:行者123 更新时间:2023-11-29 10:53:30 25 4
gpt4 key购买 nike

我必须对大量文件执行复杂的操作。幸运的是,枚举顺序并不重要,作业可以在不锁定的情况下并行完成。

平台是否提供了执行此操作的方法?由于缺乏更好的 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
}];
}];

有没有更好的办法?

最佳答案

您当前的代码将一个 block 放在全局队列中。因此,该单个 block 将在后台线程上运行并执行所有迭代和处理。

您想做一些不同的事情来让您的处理任务同时运行。您确实应该在主线程上进行迭代,并在循环的每次迭代中向全局队列添加一个 block 。

更好的是,创建一个 NSOperation 子类。把你的逻辑放在那里。在循环中创建操作实例并将它们添加到操作队列中。这是一个更高级别的 API,为您提供了添加依赖项、调整最大并发性、检查仍有待完成的操作数等选项......

关于ios - 并发文件枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19468937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com