iOS系统中多线程技术探究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
iOS系统中多线程技术探究

iOS系统中多线程技术探究   摘要:软件在设计开发过程中,都会考虑同时执行多个任务的能力,需要通过多线程的技术来实现。同样在lOS系统中,应用软件也需要具有并发执行多个任务的能力。文章内容从多线程的概率出发,主要介绍了iOS系统中使用最广泛的三种多线程技术,即NSThread、GCD、NSOperation。并分别对三种技术的使用做了进一步的研究与说明,介绍了各个多线程技术在使用过程中的一些优缺点,以及开发人员在实际应用过程中需要注意的地方。对从事iOS软件编程方面对多线程技术存在困惑的人具有一定的帮助和指导作用 关键词:iOS系统;多线程;NSThread;GCD;NSOperation 中图分类号:TP311.1 文献标识码:A 文章编号:1009-3044(2017)08-0078-03 1背景 目前,阻?K计算机性能充分发挥的主要因素是中心处理器的运行速度。在计算机技术快速发展的前提下,单核处理器已经完全满足不了我们日常的使用需求。在这种背景下,一些芯片制造商纷纷开始转向多核处理器的设计,使计算机拥有同时执行多个任务的能力。美国苹果公司的iPhone手机近几年如此之火爆,不仅是因为它漂亮的外表和丰富的软件界面,更是因为它充分利用了多核处理器的核心优势。在任何时候都可以执行系统相关的任务,而且应用程序也可以通过使用多线程技术流畅的执行多个任务,使得iPhone具有卓越的性能和优秀的用户体验。通过使用多线程技术,可以让比较耗时的操作放在子线程中执行,保证主线程只需要执行和用户界面相关的操作,不会有一种界面很“卡”的感觉,确保软件在使用过程中流畅性较好,增强了用户体验性能 2多线程的介绍 2.1进程和线程 简单点概况,进程就是计算机系统中正在运行的程序,是CPU分配资源的基本单位。进程与线程之间是相互独立的概念,每一个进程只在受保护的专属内存空间内运行,而且同一个进程内的线程共享进程中的数据资源。比如我们在电脑上同时打开浏览器与音乐播放器,系统就会自动开启两个进程 线程是CPU建立在进程基础之上执行任务的最小单位,且每个进程至少有一条主线程,进程中的所有任务都是在线程中执行的。比如用浏览器浏览网页,播放器播放音乐,都需要在每个进程中的线程去执行。每个线程中执行任务的方式是串行的,即在同一时间只可能执行一个任务。执行多个任务时也只能按照任务的先后顺序一个一个的执行。在Mac和iOS系统中运行的应用程序每多创建一个新的线程都需要占用512KB(主线程占用1MB)的内存和消耗一定的CPU时间 2.2多线程 多线程是指让应用程序的内部多个线程并发执行任务的一种能提高执行效率与资源利用率的技术。同一时间段内CPU只能处理一条线程上的任务,而多线程并发执行的实质是CPU快速地在多条线程之间的相互切换,如果线程调度的时间足够快,就造成一种多线程并发执行的假象用。如果一个应用程序线程开的太多会消耗大量的CPU资源,降低程序的性能,每条线程的执行频率和效率也会大大地降低 每个lOS应用程序运行后,默认开启一条主线程(或称之为UI线程),其作用是显示和刷新UI(User Interface/用户界面),以及处理UI事件(比如点击事件、滚动事件、拖拽事件等) 3iOS系统中三种多线程技术 iOS系统中多线程技术的实现方案总共有四种,分别为Pthread、NSThread、GCD(Grand Central Dispatch)、NSOperation技术。Pthread技术由于其使用难度大等一系列的缺陷,目前在实际的APP开发过程中基本上不使用这种淘汰的技术。因此主要以介绍NSThread、GCD、NSOperation技术的研究为主 3.1 NSThread多线程技术 NSThread是OS X和iOS系统中都提供的一个以轻量级实现的线程对象。NSThread适应于一些轻量级较简单的任务,不过用户需要自己管理线程生命周期以及线程之间的同步。NSThread没有涉及到线程状态、依赖性、线程间的同步问题,当多个线程访问同一份资源时会出现数据错乱的现象,这时我们又要使用互斥锁来解决这个问题,而这又会消耗大量的CPU资源 NSThread的初始化方法 3)动态方法 动态方法在初始化后,需要手动的调用strut方法才能开启该线程的真正创建 其中,target:selector消息发送的目标对象;selector:线程选择调用的方法,最多只能接收一个参数;argument:传给selector的唯一参数,也可以是nil 4)静态方法 5)隐式创建线程 静态方法和隐式方法在代码执行后会默认开启一条线程执行任务 3.2GCD多线程技术 GC

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档