美文网首页2015技术笔记
2015笔记——GCD(一)

2015笔记——GCD(一)

作者: 满庭花醉三千客 | 来源:发表于2018-07-27 09:33 被阅读7次

    Grand Central Dispatch 是苹果开发的一个多核编程的解决方法。

    dispatch queue 分为以下三种:

    1、运行在主线程的Main queue,通过dispatch_get_main_queue获取。

    2、并行队列global dispatch queue,通过dispatch_get_global_queue获取,由系统创建三个不同优先级的dispatch queue。并行队列的执行顺序与其加入队列的顺序相同。此外优先级官方文档表示为:高、中(默认)、低三种,实际上还有一种更低级别的全局队列后台队列。

    3、串行队列serial queue 一般用于按顺序同步访问,可通过dispatch_queue_create创建任意数量的串行队列,各个串行队列之间是并发的。

    当想要任务按照某一个特定的顺序执行时,串行队列是很有用的。串行队列在同一时间只执行一个任务。我们可以使用串行队列代替锁,去保护共享的数据。和锁不同的是:一个串行队列可以保证任务在一个可预知的顺序下执行。

    屏幕快照 2015-11-25 17.02.20.png

    看一下使用后台加载的效果:

    我从网上找了一张比较大的图片,然后在后台进行网络请求,然后在加载完毕后,进行赋值。

    话不多说,上代码:

    屏幕快照 2015-11-25 10.14.30.png

    然后是执行的顺序:

    屏幕快照 2015-11-25 10.15.38.png

    你会发现,这张大图在网络不是很好的情况下加载了9秒钟。。

    我把它新启一个线程确实比较好,因为它不会影响到主线程的运行,此时GCD的优点就非常明显啦。

    最后是效果图:

    屏幕快照 2015-11-25 10.16.06.png

    加油~

    相关文章

      网友评论

        本文标题:2015笔记——GCD(一)

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