[iOS] GCD 调度组进行 下载任务的代码 执行

调度组执行代码

- (void)group{

    //1. 创建调度组
    dispatch_group_t group = dispatch_group_create();

    //2. 创建队列
    dispatch_queue_t q = dispatch_get_global_queue(0, 0);

    //3. 调度组
    //3.1 任务A 入组
    dispatch_group_enter(group);
    dispatch_async(q, ^{

        [NSThread sleepForTimeInterval:4];

        NSLog(@"Download A: 耗时操作");
        //出组
        dispatch_group_leave(group);

    });

    //3.2 任务B 入组
    dispatch_group_enter(group);
    dispatch_async(q, ^{

        [NSThread sleepForTimeInterval:2];

        NSLog(@"Download B: 耗时操作");
        //出组
        dispatch_group_leave(group);
    });


    //4. 通知,返回指定队列 执行相关代码
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        NSLog(@"下载完成!!!!!!");
    });


}

执行结果

2018-09-04 17:15:14.863894+0800 GDC调度组使用[44546:798276] Download B: 耗时操作
2018-09-04 17:15:16.863463+0800 GDC调度组使用[44546:798275] Download A: 耗时操作
2018-09-04 17:15:16.863914+0800 GDC调度组使用[44546:798104] 下载完成!!!!!!

猜你喜欢

转载自blog.csdn.net/iOSTianNan/article/details/82387012