异步处理4 GCD

作者: Dayu大鱼 | 来源:发表于2016-07-16 00:07 被阅读71次

异步处理4

-(void)bigTaskAction{
    [self.myActivityIndicator startAnimating];

  

//GCD支持名为代码队列的概念, 队列会呗调度以在下一个可用得处理器上执行,在使用GCD时,需要制定将代码放到哪个队列中,这里使用的是默认队列,默认队列也可用于后台处理,还可以使用朱队列,主队列类似于用具界面的主线程
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        int updateUIWhen=1000;
       
        for (int i=0;i<1000;i++) {
            NSString*newString=[NSString stringWithFormat:@"i=%i",i ];
            NSLog(@"%@ ",newString);
            if (i==updateUIWhen) {
                float f =(float)i/10000;
                NSNumber*percentDone=[NSNumber numberWithFloat:f];

                dispatch_sync(dispatch_get_main_queue(), ^{
                    
                    [self.myProcessView setProgress:[percentDone floatValue ]animated:YES];
                    
                });
                updateUIWhen=updateUIWhen+1000;
            }
        }
        dispatch_sync(dispatch_get_main_queue(), ^{
            
            [self.myProcessView setProgress:1.0 animated:YES];

            [self.myActivityIndicator stopAnimating];
        });
    });
    
}



//类比:可以看出来,计算的操作放在后台另外一个进程中去计算,主线程主要用来大体的运行



之前加锁和开辟线程,现在用gcd一个就可以完成,并且使用函数dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 这是个会异步执行的GCD函数(跟开辟线程 和给线程枷锁 达到一个效果) 给线程枷锁这个步骤涵盖在函数:dispatch_sync(dispatch_get_main_queue(), ^{ 中, 刷新界面的操作代码放在主队列中进行

相关文章

  • 异步处理4 GCD

    异步处理4 之前加锁和开辟线程,现在用gcd一个就可以完成,并且使用函数dispatch_async(dispat...

  • iOS — 多线程之GCD

    GCD (Grand Central Dispatch),纯C语言,提供了很多好用的异步处理函数。 GCD优点: ...

  • Something About GCD

    一、GCD介绍 1. 简介 并发处理能够同时处理多个任务。异步设计方法可以充分地发挥多核优势。GCD(Grand ...

  • GCD队列、同步异步

    GCD队列、同步异步 GCD队列、同步异步

  • GCD队列组

    GCD并发队列封装,多个异步请求结束后,统一处理结果 使用方法

  • gcd

    GCD 异步请求,我只认准 GCD | GCD异步,你值得拥有 (广告先走一波) 网络请求放在子线程,UI 只能在...

  • iOS 实用小功能

    1 、xib中label进行换行 2、 多个异步任务进行处理,用GCD的dispatch_group_t,还有其...

  • Objective-C 高级编程 iOS与OS X多线程和内存

    第3章 Grand Central Dispatch (GCD) 3.1什么是GCD? GCD是异步执行任...

  • Grand Central Dispatch (GCD) 介绍

    GCD 概要 什么是 GCD Grand Central Dispatch (GCD) 是异步执行任务的技术之一。...

  • Objective-C之Grand Central Dispat

    一、GCD概要 什么是GCD GCD,全称Grand Central Dispatch,中文称为大中枢派发,是异步...

网友评论

    本文标题:异步处理4 GCD

    本文链接:https://www.haomeiwen.com/subject/jptujttx.html