iOS 多线程-GCD队列组

本文介绍了iOS开发中如何使用GCD队列组进行并发控制,包括通知方式`dispatch_group_notify`、等待方式`dispatch_group_wait`以及进入走出方式`dispatch_group_enter`、`dispatch_group_leave`,确保多个异步任务执行完毕后再执行后续操作。通过实例展示了队列组在确保多线程任务同步执行中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iOS 多线程-GCD任务+队列.
iOS 多线程-GCD队列组.
iOS 多线程-GCD栅栏方法.

在实际的开发中,对于多线程的使用是多种多样的,因为需求的不同,处理逻辑也不同。
现在有两个耗时操作A和B,现在需要A和B都异步执行,当A和B都执行完成后再执行C。
这样的操作逻辑很常见,例如:一个界面需要展示两个接口请求的数据,需要两个接口全部请求完成才能刷新视图,展示数据。
对于这样的操作逻辑,对于这样的操作要求,我们可以使用队列组来完成。

队列组的使用

队列组的使用我分为3种方式:
1、通知方式:dispatch_group_notify
2、等待方式(堵塞方式):dispatch_group_wait
3、进入走出方式:dispatch_group_enter、dispatch_group_leave

无论是哪一种方式,都需要先去创建队列组、创建队列和创建任务。
1、创建队列组:

	//创建队列组
    dispatch_group_t group = dispatch_group_create();
    //获取全局并行队列
    dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
通知方式:dispatch_group_notify
- (void)queueGroupNotify{
    //创建队列组
    dispatch_group_t group = dispatch_group_create();
    //获取全局并行队列
    dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
    
    //创建异步任务
    dispatch_group_async(group, queue, ^{
        //任务1
        for (int i = 0; i < 3; i++) {
            [NSThread sleepForTimeInterval:2];
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值