摘要:
概述我将分四步来带大家研究研究程序的并发计算。第一步是基本的串行程序,然后使用GCD把它并行计算化。如果你想顺着步骤来尝试这些程序的话,可以下载源码。注意,别运行imagegcd2.m,这是个反面教材。。 imagegcd.zip (8.4 KB, 87 次)原始程序我们的程序只是简单地遍历~/Pictures然后生成缩略图。这个程序是个命令行程序,没有图形界面(尽管是使用Cocoa开发库的),主函数如下: int main(int argc, char **argv) { NSAutoreleasePool *outerPool = [NSAutoreleasePool new]; NSAp 阅读全文
posted @ 2013-06-21 18:36
yingkong1987
阅读(461)
评论(0)
推荐(0)
摘要:
其主要思路是使用gcd创建串行队列,然后在此队列中先后执行两个任务:1.预加载一个viewController 2.将这个viewController推入代码如下:@implementation DWAppDelegate{ dispatch_queue_t _serialQueue; UINavigationController *_navController;}- (dispatch_queue_t)serialQueue{ if (!_serialQueue) { _serialQueue = dispatch_queue_create("serialQueue", 阅读全文
posted @ 2013-06-21 18:35
yingkong1987
阅读(212)
评论(0)
推荐(0)
摘要:
何为Dispatch Sources简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。说的貌似有点不清不楚。我们到底讨论哪些事件类型?下面是GCD 10.6.0版本支持的事件:Mach port send right state changes.Mach port receive right state changes.External process state change.File descriptor ready for read.File descriptor ready f 阅读全文
posted @ 2013-06-21 18:20
yingkong1987
阅读(230)
评论(0)
推荐(0)
摘要:
概念为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)。有两种途径来通过GCD“榨取”多核心系统的性能:将单一任务或者一组相关任务并发至全局队列中运算;将多个不相关的任务或者关联不紧密的任务并发至用户队列中运算;全局队列设想下面的循环: for(id obj i 阅读全文
posted @ 2013-06-21 18:18
yingkong1987
阅读(192)
评论(0)
推荐(0)
摘要:
什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,GCD还提供高度集成的事件控制系统。可以设置句柄来响应文件描述符、mach ports(Mach port 用于 OS X上的进程间通讯)、进程、计时器、信号、用户生成事件。这些句柄通过GCD来并发执行。GCD的API很 阅读全文
posted @ 2013-06-21 18:16
yingkong1987
阅读(242)
评论(0)
推荐(0)
摘要:
本文方法参考了:官方文档。见A function that draw aPDFpage的代码部分:void MyDisplayPDFPage (CGContextRef myContext, size_t pageNumber, const char *filename){ CGPDFDocumentRef document; CGPDFPageRef page; CGRect box; document = MyGetPDFDocumentRef (filename);// 1 page... 阅读全文
posted @ 2013-06-21 16:21
yingkong1987
阅读(591)
评论(0)
推荐(0)

浙公网安备 33010602011771号