码迷,mamicode.com
首页 > 其他好文 > 详细

GCD的使用(一)

时间:2015-04-02 16:52:58      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

1.异步执行

dispatch_async(dispatch_get_global_queue(0, 0), ^{      
// something 
});

2.同步执行

dispatch_sync(dispatch_get_global_queue(0, 0), ^{      
// something 
});
dispatch_get_global_queue(0, 0) //表示创建一个新的任务(可以理解成线程)执行
dispatch_get_main_queue()       //表示使用主线程调用block

3.一次性执行(常用于单例模式)

 static dispatch_once_t onceToken;
 dispatch_once(&onceToken, ^{    
  // code to be executed once 
 });

4.定时执行

double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){    
  // code to be executed on the main queue after delay
});

5.自定义任务队列

dispatch_queue_t urls_queue = dispatch_queue_create("blog.devtang.com", NULL);
dispatch_async(urls_queue, ^{  
  // your code  
});
dispatch_release(urls_queue);

6.任务组,汇总

dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, dispatch_get_global_queue(0,0), ^{ 
   // 并行执行的线程一 
});
dispatch_group_async(group, dispatch_get_global_queue(0,0), ^{    
   // 并行执行的线程二 
});
dispatch_group_notify(group, dispatch_get_global_queue(0,0), ^{   
   // 汇总结果
});


GCD的使用(一)

标签:

原文地址:http://my.oschina.net/iq19900204/blog/395185

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!