前言:
前天学了IOS的NSOperation基本使用,我们得知NSOperation也是基于IOS GCD(Grand Central Dispatch)实现,其实在做IOS开发中GCD已经基本上能够满足大部分需求。作为IOS开发工程师很有必要对GCD做个全面了解,今天一边写demo一边对比总结一下GCD使用。
了解GCD
GCD是Grand Central Dispatch的简称,它是基于C语言的。如果使用GCD,完全由系统管理线程,我们不需要编写线程代码。只需定义想要执行的任务,然后添加到适当的调度队列(dispatch queue)。GCD会负责创建线程和调度你的任务,系统直接提供线程管理。
执行方式
使用线程就离不开线程队列的执行方式和任务的执行方式,大致分以下几个:
串行(Serial):让任务一个接着一个地执行(一个任务执行完毕后,再执行下一个任务)
并行(Concurrent):可以让多个任务并发(同时)执行(自动开启多个线程同时执行任务)并发功能只有在异步(dispatch_async)函数下才有效。
同步(Synchronous):在当前线程中执行任务,不具备开启新线程的能力
异步(Asynchronous):在新的线程中执行任务,具备开启新线程的能力
调度队列
上面了解到Dispatch 通过分发开发者提供的不同queue来调度任务,我们来看下GCD有哪些队列。
| 队列类型 | 创建方式 |
主线程串行队列(mian) | dispatch_get_main_queue(); |
网友评论 |

