GCD之dispatch_group_create

来源:互联网 发布:彩虹域名授权源码 编辑:程序博客网 时间:2024/06/09 13:46

dispatch_group_create是建一个组

// 创建一个组    dispatch_group_t group = dispatch_group_create();

常见用法:异步执行两个网络请求,等这两个请求数据完毕后,再刷新主线程

 dispatch_group_t group = dispatch_group_create();    // 创建并行队列    dispatch_queue_t asynQueue1 = dispatch_queue_create("asynQueue1",DISPATCH_QUEUE_CONCURRENT);    dispatch_group_async(group, asynQueue1, ^{        NSLog(@"任务一");    });    dispatch_group_async(group, asynQueue1, ^{        NSLog(@"任务二");    });    // 注意这里用的是dispatch_get_main_queue() 因为这里已经完成任务一和任务二的执行了,所以下一步就是回到主线程刷新UI    dispatch_group_notify(group, dispatch_get_main_queue(), ^{        NSLog(@"回到主线程刷新UI");    });

上面的代码就是,会异步的执行任务一和任务二,等这两个任务执行完毕后就会执行刷新UI

以上的代码关系是这样

任务一和任务二是在并行队列asynQueue1中执行的
asynQueue1是属于group这个组的
dispatch_group_notify的作用是等group这个组的所有任务执行完才会执行

0 0
原创粉丝点击