iOS开发中GCD的dispatch_group_t的使用

在iOS的开发过程中,我们经常会碰到这样的需求,需要我们同时有多个网络请求,当多个网络请求全部完成后才能执行下一步的操作。例如最近一个需求:主营品牌(首先需要获取所有品牌,向A服务器去请求;其次获取某个门店的主营品牌,这次去B服务器请求,默认显示并选中它)
其实这个问题很简单,可以在A请求完成之后,再执行B请求即可,但是在codeReview过程中,一个开发人员提出了用GCD的dispatch_group_t即队列多线程来解决更好,确实,从理论上来说,用group组的方式确实会更合适,那就改吧。

dispatch_group_t group = dispatch_group_create();


for (int i=0; i<10; i++) {
    
    dispatch_group_enter(group);

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        NSLog(@"%d----%d",i,i);
        dispatch_group_leave(group);
    });
    
}

NSLog(@"111");

dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    NSLog(@"end");
});

链接:https://www.jianshu.com/p/69162c1d5029

你可能感兴趣的:(iOS开发中GCD的dispatch_group_t的使用)