zoukankan      html  css  js  c++  java
  • 用GCD来处理大量for loop任务

    在编程过程中,我们经常会用到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); 
    
    });

     

  • 相关阅读:
    遥远的国度(D12 树链剖分)
    Codechef DGCD Dynamic GCD(D12 树上GCD)
    html总结
    数据库大总结
    html笔记
    Linux常用快捷键
    进程
    多进程
    进程介绍
    网络并发
  • 原文地址:https://www.cnblogs.com/mystory/p/3467522.html
Copyright © 2011-2022 走看看