GCD简单用法

/*!
 *  @brief GCD方法
 */
- (void)GCDMethod
{
    //后台执行
    dispatch_async(dispatch_get_global_queue(0, 0), ^{
        
    });
    
    //主线程执行
    dispatch_async(dispatch_get_main_queue(), ^{
        
    });
    
    //一次性执行
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        
    });
    
    //延迟几秒
    double delayInSeconds = 2.0;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^{
        //[self CommonMethod1];
    });
    
    //高级用法让后台 2 个线程并行执行,然后等 2 个线程都结束后,再汇总执行结果。这个可以用 dispatch_group, dispatch_group_async 和 dispatch_group_notify 来实现,
    dispatch_group_t group = dispatch_group_create();
    dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^{
        [self CommonMethod1];
    });
    
    dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^{
        [self CommonMethod2];
    });
    dispatch_group_notify(group, dispatch_get_global_queue(0, 0), ^{
        [self CommonMethod1];
    });
    
}
/*!
 *  @brief 案例测试
 */
- (void)GCDEmgTest{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSURL *url = [NSURL URLWithString:@"http://www.youdao.com"];
        NSError *error;
        NSString *data = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
        if (data != nil) {
            dispatch_async(dispatch_get_main_queue(), ^{
                [self CommonMethod1];
                //NSLog(@"%@",data);
            });
        }
    });
}
- (void)CommonMethod1
{
    static NSInteger i = 1;
    NSLog(@"CommonMethod1第%ld葫芦娃",++i);
}


- (void)CommonMethod2
{
    static NSInteger i = 2;
    NSLog(@"CommonMethod2第%ld葫芦娃",++i);
}

 

转载于:https://www.cnblogs.com/superbobo/p/5302123.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值