dispatch_apply的用法

來源:互聯網
上載者:User

標籤:void   pretty   判斷   時間函數   關聯   keyword   代碼   迭代   時間   

dispatch_apply的用法

並行類比for迴圈,將指定的代碼迴圈10次,一般會把這些代碼附加到一個queue上,然後在 dispatch_apply裡並行

dispatch_queue_t queue = dispatch_get_globel_queue(DISPATCH_QUEUE_PREORITY_DEFAULT,0)

dispatch_apply(10, queue, ^(size_t index){

  NSLog("並存執行--%@",index);

});

dispatch_apply_f的用法

dispatch_apply 和 dispatch_apply_f 是同步函數,會阻塞當前線程直到所有迴圈迭代執行完成。當提交到並發queue時,迴圈迭代的執行順序是不確定的 

dispatch_after

延遲指定時間之後執行任務

dispatch_after(dispatch_time_t when, dispatch_queue_t queue, ^(void)block)

 

when:順延強制時間 一般是一個這樣的時間函數: dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * NSEC_PER_SEC))

queue:隊列 dispatch_get_main_queue()或者 dispatch_get_global_queue()

block:執行的任務

dispatch_once

dispatch_once(dispatch_once_t *predicate, ^(void)block)

predicate: 用來判斷需要執行的任務是否執行完成

block :需要執行的一次性任務

+ (instantClass *)sharedClient {

  static instantClass *_sharedClient = nil;

  static dispatch_once_t onceToken;

  dispatch_once(&onceToken, ^{

     _sharedClient = [[instantClass alloc] init];

  });

   return _sharedClient;

}

 dispatch_group

dispatch_grpup,把若干個任務放到一個dispatch group中

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PREORITY_DEFAULT,0);

dispatch_queue_group group = dispatch_group_craete();

dispatch_group_aysnc(group, queue,^{

  //do some async work

});

 

dispatch_group_async 和 dispatch_async一樣,會把任務放到queue中執行,只不過它比dispatch_async多了一步操作,就是把這個任務和group相關聯,

把這些任務放到group之後,我們可以調用dispatch_group_wait來等待任務完成。若任務已經全部完成或者為空白,直接返回,否則等待所有任務完成之後返回。注意返回之後任務清空。

dispatch_group_wait(group,DISPATCH_TIME_FORVER);

dispatch_release(group);

 

 

 

 

 

 

 

 

 


dispatch_apply的用法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.