1 / 6
文档名称:

GCD介绍基本概念和DispatchQueue.docx

格式:docx   大小:61KB   页数:6页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

GCD介绍基本概念和DispatchQueue.docx

上传人:pppccc8 2019/4/8 文件大小:61 KB

下载得到文件列表

GCD介绍基本概念和DispatchQueue.docx

文档介绍

文档介绍:iOS的三种多线程技术NSThread每个NSThread对象对应一个线程,量级较轻(真正的多线程)以下两点是苹果专门开发的“并发”技术,使得程序员可以不再去关心线程的具体使用问题0NSOperation/NSOperationQueue面向对象的线程技术0GCD——GrandCentralDispatch(派发)是基于C语言的框架,可以充分利用多核,是苹果推荐使用的多线程技术以上这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple®推荐使用的,在项目中很多框架技术分别使用了不同多线程技术。•NSThread:-优点:NSThread比其他两个轻最级,使用简单-缺点:需要自己管理线程的生命周期、线程同步、加锁、睡眠以及唤曜等。线程同步对数据的加锁会有一定的系统开销•NSOperation:-不需耍关心线程管理,数据同步的事情,可以把粘力放在口己需耍执行的操作上-NSOperation是面向对象的•GCD:-GrandCentralDispatch是由苹果开发的一个多核编程的解决方案。+才能使丿IJ,是替代NSThread,NSOperation的高效和强大的技术-GCD是基于C语言的什么是GCD?GrandCentralDispatch或者GCD,是一套低层API,提供了一种新的方法來进行并发程序编写。从基木功能上讲,GCD冇点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列來并发地或者串行地执行。GCD比ZNSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,GCD还提供高度集成的事件控制系统。可以设置句柄來响应文件描述符、machports(Machport用于OSX上的进程间通讯)、进程、计时器、信号、用户生成事件。这些句柄通过GCD来并发执行。GCD的API很大程度上基于block,当然,GCD也可以脱离block來使用,比如使用传统c机制捉供函数指针和上下文指针。实践证明,当配合block使用时,GCD非常简单易用且能发挥其最大能力。你可以在Mac上敲命令“mandispatch”來获取GCD的文档。为何使用?GCD提供很多超越传统多线程编程的优势:易用:。由丁-GCD基于workunit而非像thread那样基于运算,所以GCD可以控制诸如等待任务结束、监视文件描述符、周期执行代码以及工作挂起等任务。皋于block的血统导致它能极为简单得在不同代码作用域之间传递上下文。效率:GCD被实现得如此轻昴和优雅,使得它在很多地方比之专门创建消耗资源的线程更实用且快速。这关系到易用性:导致GCD易用的原因冇一部分在于你可以不用担心太多的效率问题而仅仅使用它就行了。性能:GCD自动根据系统负载來增减线程数量,这就减少了上下文切换以及增加了计算效率。DispatchObjects尽管GCD是纯c语言的,但它被纽建成面向对象的风格。GCD对彖被称为dispatchobjectoDispatchobject像Cocoa对象•样是引用计数的。使用dispatch_release和dispatch_retain函数来操作dispatchobject的引用计数来进行内存