GCD的简单使用

很多时候,我们需要开辟新线程,最近在看唐巧的iOS开发进阶,发现里面写的GCD的方法简单明了,易于使用,所以在这里整理一下,希望可以自己印象深刻一些,也能帮助一些想要了解GCD的宝宝,帮助到你要记得给个喜欢呦。


dispatch_async(dispatch_get_global_queue(0, 0), ^{
        //后台运行的代码
    });
dispatch_async(dispatch_get_main_queue(), ^{
        //回归主线程
    });

下面这个dispatch在单例模式中经常用到

static dispatch_once_t once_t;
    dispatch_once(&once_t, ^{
        //一次性执行
    });
double delayInSeconds = 2.0;//延迟的时间--延迟两秒执行
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^{
        //执行完代码回归主线程
    });

下面这个是GCD的高级用法,比方说让两个线程在后台并行进行,然后等两个线程都结束了之后再执行汇总结果。

dispatch_group_t group = dispatch_group_create();
    dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^{
        //并行执行的线程一
    });
    dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^{
        //并行执行的线程二
    });
    dispatch_group_notify(group, dispatch_get_global_queue(0, 0), ^{
        //汇总结果
    });

GCD常用的一些基本方法差不多就这几个,是不是看起来很简单呢,其实使用起来也很简单呢。

你可能感兴趣的:(GCD的简单使用)