文章目录
- iOS - 多线程-GCD-队列组
- 1. 队列组
- 1.1 基本使用步骤
 
 
iOS - 多线程-GCD-队列组
开发过程中,有时候想实现这样的效果
- 多个任务并发执行
- 所有任务执行完成后,进行下一步处理(比如回到主线程刷新UI)
1. 队列组
可以使用GCD的队列组来实现
1.1 基本使用步骤
- 创建队列组dispatch_group_create()
- 创建队列dispatch_queue_create
- 执行任务
- 监听任务完成dispatch_group_notify
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue = dispatch_queue_create("myqueue", DISPATCH_QUEUE_CONCURRENT);
dispatch_group_async(group, queue, ^{for (int i = 0 ; i < 5; i++) {NSLog(@"任务 --- 1");}
});dispatch_group_async(group, queue, ^{for (int i = 0 ; i < 5; i++) {NSLog(@"任务 --- 2");}
});dispatch_group_async(group, queue, ^{for (int i = 0 ; i < 5; i++) {NSLog(@"任务 --- 3");}
});dispatch_group_notify(group, queue, ^{NSLog(@"任务 ---------- 4 ----------");
});
执行结果:
 
 任务 1、2、3并发执行,完成后执行任务4
可以使用多个dispatch_group_notify,达到这样的效果:任务1、2、3并发执行完成后,再并发执行任务4、5
dispatch_group_notify(group, queue, ^{NSLog(@"任务 ---------- 4 ----------");
});dispatch_group_notify(group, queue, ^{NSLog(@"任务 ---------- 5 ----------");
});

@oubijiexi