GCD 串行队列

dispatch_queue_t aQueue = dispatch_queue_create("groupname",DISPATCH_QUEUE_SERIAL);
// create queue group
dispatch_group_t queueGroup = dispatch_group_create();
// task 1
dispatch_group_async(queueGroup, aQueue, ^{
    NSLog(@"task 1 begin.");
    NSLog(@"task 1 end.");
});
// task 2
dispatch_group_async(queueGroup, aQueue, ^{
    NSLog(@"task 2 begin.");
    NSLog(@"task 2 end.");
});
// task 3
dispatch_group_async(queueGroup, aQueue, ^{
    NSLog(@"task 3 begin.");
    NSLog(@"task 3 end.");
});
NSLog(@"wait task 1,2,3.");
// waiting for group tasks done
dispatch_group_wait(queueGroup, DISPATCH_TIME_FOREVER);
NSLog(@"task 1,2,3 finished.");
// release group
dispatch_release(queueGroup);
// recreate group
queueGroup = dispatch_group_create();
// task 4
dispatch_group_async(queueGroup, aQueue, ^{
    NSLog(@"task 4 begin.");
    NSLog(@"task 4 end.");
});
// task 5
dispatch_group_async(queueGroup, aQueue, ^{
    NSLog(@"task 5 begin.");
    NSLog(@"task 5 end.");
});
// task 6
dispatch_group_async(queueGroup, aQueue, ^{
    NSLog(@"task 6 begin.");
    NSLog(@"task 6 end.");
});
NSLog(@"wait task 4,5,6.");
// waiting for group tasks done
dispatch_group_wait(queueGroup, DISPATCH_TIME_FOREVER);
NSLog(@"task 4,5,6 finished.");
// release group
dispatch_release(queueGroup);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容