赞
踩
开发过程中,有时候想实现这样的效果
可以使用GCD的队列组来实现
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。