用GCD来处理大量for loop任务

瘦欲@ 提交于 2019-11-26 18:29:18

在编程过程中,我们经常会用到for循环,而且for循环要做很多相关的任务。比如:

for (i = 0; i < count; i++) { 

   //do a lot of work here. 

   doSomething(i); 

}

如果for循环中处理的任务是可并发的,显然放到一个线程中处理是很慢的,GCD提供两个函数dispatch_apply和dispatch_apply_f,dispatch_apply是用于Block的,而dispatch_apply_f可以用于c函数,它们可以替代可并发的for循环,来并行的运行而提高执行效率。

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 

dispatch_apply(count, queue, ^(size_t i) { 

   //do a lot of work here. 

   doSomething(i); 

});

 

 

转载于:https://www.cnblogs.com/mystory/p/3467522.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!