码迷,mamicode.com
首页 > 编程语言 > 详细

多线程---GCD

时间:2015-04-09 19:35:29      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

一,什么是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原则:先进先出,后进后出

多线程---GCD

标签:

原文地址:http://www.cnblogs.com/lvchenhao/p/4410282.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!