gpt4 book ai didi

ios - 大规模并行计算ios

转载 作者:行者123 更新时间:2023-12-02 10:32:41 25 4
gpt4 key购买 nike

我有一种方法可以使用不同的数据重复执行数学运算(可能数百万次)。在 iO 中执行此操作的最佳方法是什么(它将在 iPad 设备上运行)?我知道 performSelectorOnBackgroundThread 已被弃用...?我还需要将所有结果聚合到 NSArray 中。最好的方法似乎是:向通知中心发布通知并将该方法添加为观察者。它是否正确?我相信该数组需要声明为原子...另外,我需要在操作完成时显示一个进度条...我可以并行启动多少个线程?我不认为在 iDevice 上启动 1.000.000 个线程是一个好主意..

提前致谢...

最佳答案

查看Grand Central Dispatch ,这是在 iOS(和 Mac)上执行多线程的首选方式。

使用 GCD 的简单示例如下所示:

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
//do long running task here
}

这将异步执行主线程的 block 。 GCD 有许多其他分配任务的方法,直接取自上面列出的维基百科文章的一种方法是:

dispatch_apply(count, dispatch_get_global_queue(0, 0), ^(size_t i){
results[i] = do_work(data, i);
});
total = summarize(results, count);

这个特定的代码示例可能正是您正在寻找的,假设您的这个“大任务”是 embarrassingly parallel .

关于ios - 大规模并行计算ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14241282/

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