2015笔记——GCD(一)

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

加油~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,314评论 8 265
  • 1.NSTimer不准时的原因:(1).RunLoop循环处理时间,每次循环是固定时间,只有在这段时间才会去查看N...
    稻春阅读 1,380评论 0 3
  • GCD笔记 总结一下多线程部分,最强大的无疑是GCD,那么先从这一块部分讲起. Dispatch Queue的种类...
    jins_1990阅读 848评论 0 1
  • 记得小时候,大家都管带状疱疹叫蛇板疮,知道它的学名,是在自己关注中医以后,中医里,又管它叫蛇丹,不管哪个名字,听起...
    fire05阅读 1,967评论 0 48
  • 这是 chaim “ 365 日写作计划”第 60 天的写作内容。 如何倾听 人际交往中,倾听必不可少。 根据字义...
    chaim阅读 426评论 0 0

友情链接更多精彩内容