GCD
文章平均质量分 79
叫我路飞
这个作者很懒,什么都没留下…
展开
-
iOS多线程编程知多少
在iOS的世界里有两种实现多线程的方式: 多线程是一个比较轻量级的方法来实现单个应用程序内多个代码执行路径。在系统级别内,程序并排执行,系统分配到每个程序的执行时间是基于该程序的所需时间和其他程序的所需时间来决定的。然而在每个应程序的内部,存在一个或多个执行线程,它同时或在一个几乎同时发生的方式里执行不同的任务。 第一种:GCD 官网链接 http://develo原创 2016-05-13 10:31:02 · 338 阅读 · 0 评论 -
使用Dispatch Groups来管理多个Web Services请求
假设你的应用在启动时必须向服务端进行一连串的请求.这些请求可能是获取配置信息.举个例子,当你的应用启动时可能会向服务端请求一些配置信息.这个配置信息可能需要多个请求组合而成. 你想通过调用一个方法去启动这些请求,然后全部请求完成后,在一个completion block里面完成你的业务逻辑.但是这些请求相互间没有什么联系,我们应该如何做呢? 在你看到你的代码像下面的这个样子时,可能你需要重构你原创 2016-05-13 17:35:00 · 470 阅读 · 0 评论 -
GCD使用攻略
什么是GCD Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。该方法在Mac OS X 10.6雪豹中首次推出,并随后被引入到了iOS4.0中。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术,它看起来象就其它语言的闭包(Closure)一样,但苹原创 2016-05-17 09:55:59 · 384 阅读 · 0 评论 -
GCD介绍(一):基本概念和Dispatch Queue
什么是GCD? Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。 除了代码的平行执行能力,GC原创 2016-05-17 10:26:31 · 313 阅读 · 0 评论 -
GCD介绍(二):多核心的性能
概念 为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)原创 2016-05-17 10:59:51 · 300 阅读 · 0 评论 -
GCD介绍(三):Dispatch Sources
何为Dispatch Sources 简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。 说的貌似有点不清不楚。我们到底讨论哪些事件类型? 下面是GCD 10.6.0版本支持的事件: Mach port send right state changes. Ma原创 2016-05-17 13:48:25 · 308 阅读 · 0 评论 -
GCD介绍(四):完结
Dispatch Queue挂起 dispatch queue可以被挂起和恢复。使用 dispatch_suspend函数来挂起,使用 dispatch_resume 函数来恢复。这两个函数的行为是如你所愿的。另外,这两个函数也可以用于dispatch source。 一个要注意的地方是,dispatch queue的挂起是block粒度的。换句话说,挂起一个queue并不会将当前正原创 2016-05-17 13:49:51 · 304 阅读 · 0 评论