标签:
一,什么是GCD?
GCD (Grand Center Dispatch),宏大(牛逼)的中央调度。Apple开发的一个多核编程的解决方法。在iOS所有实现多线程的方案中(NSThread,NSOperation&NSOperationQueue、GCD ),GCD应该是最有魅力的,因为GCD本身是苹果公司为多核的并行运算提出的解决方案。GCD在工作时会自动利用更多的CPU内核(比如双核、四核),GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)。GCD是基于C语言的,因此我们在编写GCD相关代码的时候,面对的函数,而不是方法。如果使用GCD,完全由系统管理线程,我们不需要编写线程代码。只需定义想要执行的任务,然后添加到适当的调度队列(dispatch queue)。GCD会负责创建线程和调度你的任务,系统直接提供线程管理。
二、三种多线程的优缺点?
1.NSThread:
优点:NSThread ?比其他两个轻量级;缺点:需要?自?己管理线程的?生命周期,线程同步。线程同步对数据的加锁会有?一定的系统开销;
2.NSOperation&NSOperationQueue:
优点:不需要关?心线程管理,数据同步的事情,可以把精?力放在?自?己需要执?行的操作上。 Cocoaoperation相关的类是NSOperation,NSOperationQueue。NSOperation是个 抽象类,使?用它必须?用它的?子类,可以实现它或者使?用它定义好的两个?子类: NSInvocationOperation 和 NSBlockOperation。创建NSOperation?子类的对象,把对象 添加到NSOperationQueue队列?里执?行。
3.GCD:
Grand Central Dispatch (GCD)是Apple开发的?一个多核编程的解决?方法。在iOS4.0开始 之后才能使?用。GCD是?一个替代诸如NSThread, NSOperationQueue,NSInvocationOperation等技术的很?高效和强?大的技术。现在的iOS系统都升级到6了, 所以不?用担?心该技术不能使?用。
三,概念:
GCD中有2个核心概念
(1)任务:执行什么操作
(2)队列:用来存放任务
GCD的使用就2个步骤:(1)定制任务(2)确定想做的事情
将任务添加到队列中,GCD会自动将队列中的任务取出,放到对应的线程中执行
提示:任务的取出遵循队列的FIFO原则:先进先出,后进后出
标签:
原文地址:http://www.cnblogs.com/lvchenhao/p/4410282.html