用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); 

});
相關文章
相關標籤/搜索