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

在项目中往往会遇到这种需求: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 多个网络请求并发执行的解决方案)