美文网首页
GCD中dispatch_group的使用

GCD中dispatch_group的使用

作者: 萤火驻守心间 | 来源:发表于2022-05-18 14:55 被阅读0次

    dispatch_group可以将GCD的任务合并到一个组里来管理。本质相当于初始值为LONG_MAX的信号量,等待group中的任务完成其实是等待value恢复初始值。

    使用场景:多张图片上传完成后刷新视图

    思路:
    1、将所有耗时操作放在group中,等全部操作完成回到主线程刷新UI。
    2、当group内的block都执行完成时调用dispatch_group_notify,回到主线程刷新

    dispatch_group_t group = dispatch_group_create();
        
            dispatch_group_async(group, dispatch_queue_create(0, 0), ^{
                for (int i=0; i<3; i++) {
                    NSLog(@"任务%d",i);
                    sleep(3);
                }
                NSLog(@"已执行完成");
            });
       
        dispatch_group_notify(group, dispatch_get_main_queue(), ^{
            NSLog(@"group已执行完成");
        });
    

    相关文章

      网友评论

          本文标题:GCD中dispatch_group的使用

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