GCD教程
lun119
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GCD实战一:使用串行队列实现简单的预加载
其主要思路是使用gcd创建串行队列,然后在此队列中先后执行两个任务:1.预加载一个viewController 2.将这个viewController推入 代码如下: @implementation DWAppDelegate { dispatch_queue_t _serialQueue; UINavigationController *_navController; }转载 2013-10-10 16:47:49 · 702 阅读 · 0 评论 -
GCD介绍(四): 完结
Dispatch Queue挂起 dispatch queue可以被挂起和恢复。使用 dispatch_suspend函数来挂起,使用 dispatch_resume 函数来恢复。这两个函数的行为是如你所愿的。另外,这两个函数也可以用于dispatch source。 一个要注意的地方是,dispatch queue的挂起是block粒度的。换句话说,挂起一个queue并不会将当前正转载 2013-10-10 16:46:48 · 618 阅读 · 0 评论 -
GCD介绍(一): 基本概念和Dispatch Queue
什么是GCD? Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。 除了代码的平行执行能力,GC转载 2013-10-10 16:12:09 · 612 阅读 · 0 评论 -
GCD实战2:资源竞争
概述 我将分四步来带大家研究研究程序的并发计算。第一步是基本的串行程序,然后使用GCD把它并行计算化。如果你想顺着步骤来尝试这些程序的话,可以下载源码。注意,别运行imagegcd2.m,这是个反面教材。。 imagegcd.zip (8.4 KB, 347 次) 原始程序 我们的程序只是简单地遍历~/Pictures然后生成缩略图。这个程序是个命令行程序转载 2013-10-10 16:49:42 · 687 阅读 · 0 评论 -
GCD介绍(二): 多核心的性能
概念 为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)转载 2013-10-10 16:17:33 · 570 阅读 · 0 评论 -
GCD介绍(三): Dispatch Sources
何为Dispatch Sources 简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。 说的貌似有点不清不楚。我们到底讨论哪些事件类型? 下面是GCD 10.6.0版本支持的事件: Mach port send right state changes.Mach p转载 2013-10-10 16:42:26 · 705 阅读 · 0 评论
分享