美文网首页
iOS 多个网络请求并发执行的解决方案

iOS 多个网络请求并发执行的解决方案

作者: buzaixian程序员 | 来源:发表于2018-06-29 11:29 被阅读12次

    在项目中往往会遇到这种需求:UI 的更新要在2~3个网络请求后才执行

    //创建一个队列组
        dispatch_group_t group = dispatch_group_create();
        //创建一个并行队列
        dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
        
        // 模拟请求返回的数据
        __block NSString *string1;
        __block NSString *string2;
        __block NSString *string3;
        //使用同步函数封装三个任务
        dispatch_group_async(group, queue, ^{
            // 模拟请求
            NSLog(@"请求1---%@", [NSThread currentThread]);
            string1 = @"任务1";
        });
        dispatch_group_async(group, queue, ^{
            // 模拟请求
            NSLog(@"请求2---%@", [NSThread currentThread]);
            string2 = @"任务2";
        });
        dispatch_group_async(group, queue, ^{
            // 模拟请求
            NSLog(@"请求3---%@", [NSThread currentThread]);
            string3 = @"任务3";
        });
        
        // 多个请求都结束了,处理请求数据
        dispatch_group_notify(group, queue, ^{
            NSLog(@"%@-%@-%@",string1,string2,string3);
        });
    

    相关文章

      网友评论

          本文标题:iOS 多个网络请求并发执行的解决方案

          本文链接:https://www.haomeiwen.com/subject/mmzoyftx.html