什么是GCD? Grand Central Dispatch或者GCD,是?一套低层API,提供了?一种新的?方法来进?行并发程序编写.从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将 任务切分为多个单?一任务然后提交?至?工作队列来并发地或者串?行地执?行.GCD?比之NSOpertionQueue更底层更?高效,并且它不是Cocoa框架的?一部分. 除了代码的平?行执?行能?力,GCD还提供?高度集成的事件控制系统.可以设置句柄来响应?文件描述符.mach po
什么是GCD? Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写.从基本功能上讲,GCD有点像 NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行.GCD比之 NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分. 除了代码的平行执行能力,GCD还提供高度集成的事件控制系统.可以设置句柄来响应文件描述符.mach ports(Mach port 用于
? 可以看到,在queue里的任务,不仅仅是一个函数,也可以是一个其他的queue. 下面是一个例子. ? 全局队列的处理 一般一个全局队列有多个线程,这些个线程会遍历并处理链表里的任务. 对于全局队列,当一个任务被抛进来后,会尽快处理掉. 如果有空闲线程,那么这个空闲线程会处理这个任务. 如果没有空闲线程,那么会新开一个线程来处理. 空闲线程来自哪里呢? do { _dispatch_worker_thread2(context); // we use 65 seconds in case t