针对WZHGCDHelper使用说明

2018-04-20  本文已影响0人  仓山尼

项目中有许多地方要使用到GCD,因此研究GCD一段时间,从各种渠道翻译了多篇文章,找了很多的资料,看了很多官方文档。项目完成后本人利用闲暇时间,集合了众多博客以及Demo所讲解的封装了一个github公有库,已经上传1.0.0版本,欢迎大家给star 。

这篇是本人对库用法一一进行讲解.同时也欢迎大家指正

1.库支持ARC以及非ARC,但是无论在ARC环境还是在非ARC环境,都需要调用dispatchRelease方法来释放init出的你所创建的GCDGroup,GCDQueue,GCDSemaphore,以及GCDTimer对象

2.系统并发线程的使用:

原本GCD的并发线程是使用dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)来操作,但是你有没有使用的时候就很抓瞎的感觉,而经过封装之后直接可以这样使用:

[[GCDQueue globalQueue] execute:^{

        // 在系统默认级别的线程队列中执行并发的操作

}];

当多个执行的时候是没有先后关系的

3.系统串行线程

[[GCDQueue mainQueue] execute:^{

        // 在系统主线程队列中执行串行操作

}];

主线程队列是被系统自动创建的,用来关联上你的应用的主线程.但是作为全局的并发队列,调用dispatch_suspend,dispatch_resume,dispatch_set_context类似的方法都将无效.它的执行是按先后顺序的

一般我们可以这样联合使用效果更佳

[[GCDQueue globalQueue] execute:^{

        // 并发线程执行阻塞操作       

        [[GCDQueue mainQueue] execute:^{

            // 主线程更新UI        }];

    }];

上一篇 下一篇

猜你喜欢

热点阅读