GCD调度组

1、第一种方式

- (void)group1 {
    dispatch_group_t group = dispatch_group_create();
    
    dispatch_queue_t q = dispatch_get_global_queue(0, 0);
    
    dispatch_group_enter(group);
    dispatch_async(q, ^{
        NSLog(@"print A: ");
        dispatch_group_leave(group);
    });
  
    dispatch_group_enter(group);
    dispatch_async(q, ^{
        NSLog(@"print B:");
        [NSThread sleepForTimeInterval:1.0];
        dispatch_group_leave(group);
    });
    
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        NSLog(@"print C:");
    });
    
}

2、第二种方式

- (void)group2 {
    dispatch_group_t group = dispatch_group_create();
    
    dispatch_queue_t q = dispatch_get_global_queue(0, 0);
    
    dispatch_group_async(group, q, ^{
        NSLog(@"print A: ");
    });
    
    dispatch_group_async(group, q, ^{
        NSLog(@"print B:");
        [NSThread sleepForTimeInterval:1.0];
    });
    
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        NSLog(@"print C: ");
    });
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 有这么一个需要,分别执行2个耗时的异步操作,等2个异步操作都执行完毕后在回到主线程执行操作。如果想要快速高效地实现...
    进击的小巨牛阅读 4,312评论 0 0
  • NSThread 第一种:通过NSThread的对象方法 NSThread *thread = [[NSThrea...
    攻城狮GG阅读 4,284评论 0 3
  • 简介 GCD(Grand Central Dispatch)是在macOS10.6提出来的,后来在iOS4.0被引...
    sunmumu1222阅读 4,363评论 0 2
  • 0. Description iOS SDK >= 6.0且开启ARC,GCD对象就不应该使用dispatch_r...
    barbere阅读 2,900评论 0 0
  • 文笔训练营课4作业 1. 对对子 岁月如风小少女,浮生若梦俏佳颜 2. 写两个短句描述自己,使用押韵手法。比如你...
    文小兰阅读 1,495评论 2 1