《iOS开发实战》教学课件 ios实战开发第五章.pptxVIP

《iOS开发实战》教学课件 ios实战开发第五章.pptx

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
iOS开发实战;;多线程简介;线程是由操作系统独立管理的指令序列,是执行程序最基本的单元。首先来了解一下线程的相关概念,以及iOS的3种多线程技术。;;总结而言,进程和线程具有以下几个特点。;04;07;使用多线程时,要注意以下事项。;iOS常用的多线程开发技术主要有以下3种。;现对3种多线程技术对比如下。;3)GCD;多线程简介;Thread在三种多线程技术中是最轻量级的,可以直接操控线程对象,使用起来非常方便、直观,但是需要手动管理线程的生命周期,所以Thread这种多线程技术只是偶尔用用。下面来看看它的一些用法。;(1)先创建线程对象,然后手动启动。;对以上两种创建方法的参数说明如下:;除了上面讲到的创建Thread线程的方法,还有以下有关Thread的使用方法。;(4)获取主线程。;只要是NSObject的子类或者对象都可以通过调用方法进入子线程和主线程,其实这些方法所开辟的子线程也是Thread的另一种体现方式。 方法①:开辟子线程。;通常,由于线程管理相对比较繁琐,而很多耗时的任务又无法知道其准确的完成时间,因此可以使用方法①直接新建一个后台线程,并将选择器指定的任务在后台线程执行,而无需关心具体的Thread对象。如果要更新UI,可以在后台线程中调用方法②。;多线程简介;上一节简单介绍了Thread的使用,虽然也可以实现多线程编程,但是需要我们去管理线程的生命周期,还要考虑线程同步、加锁问题,会造成一些性能上的开销。;为了避免这些问题,我们可以配合使用Operation和OperationQueue实现多线程编程,其工作原理如下。;下面列举一个应用场景,比如一个商品列表页,如右图所示。每一行的图标肯定要从服务器下载图片后才能显示出来,而且是需要异步下载。这时,我们就可以把每一行的图片下载操作封装到一个Operation对象中,上面有4行,所以要创建4个Operation对象,然后添加到OperationQueue中,分别下载不同的图片。下载完成后,回到对应的行将图片显示出来。;默认情况下,Operation并不具备封装操作的能力,必须使用它的子类BlockOperation来实现多线程操作。;BlockOperation类用于管理一个或多个操作的并发执行。;2.并发执行多个操作;输出日志如下??所示。;OperationQueue是用于控制一组操作的执行的队列。;;2.最大并发数;3.队列的取消;4.队列的挂起和恢复;5.等待Operation完成;6.添加Operation的依赖对象;;调试区域输出的日志结果如下图所示,可以看到,先执行了blockOpe2,然后执行了blockOpe1。;7.修改Operations的执行顺序;多线程简介;GCD(Grand Central Dispatch)是苹果公司开发的一种旨在优化多核环境中的并发操作。它是基于C语言的线程管理方案,使用者无需过多参与线程的管理,只需要将想要执行的代码添加到调度队列即可。;GCD的工作原理如下:;GCD的底层依然是用线程实现,不过我们可以不用关注实现的细节。Dispatch Queue(调度队列)可以是并发的或串行的,也可以异步或同步执行。 (1)GCD队列:并发队列和串行队列。;(2)GCD任务的执行方式:异步操作和同步操作。;(1)创建一个串行队列。;2.同步/异步+串行/并发队列的组合;示例代码的输出日志如下图所示。;2)异步+串行队列;示例代码的输出日志如下图所示。;3)同步+并发队列;;示例代码的输出日志如下图所示。;4)异步+并发队列;示例代码的输出日志如下图所示。;3.线程之间的通信;2)线程之间通信的具体实现实例;;4.GCD的其他使用;2)其他延迟执行方法;3)创建线程群组;;开启多条线程,去执行群组中的任务。当群组中的四个任务执行完毕后,再去执行notify里面的任务,输出日志如下图所示。;在本案例中,我们将使用多线程来模拟火车票售票系统,运行效果如右图所示。;(1)系统预设如下:;(2)线程工作安排如下:;感谢您的观看

文档评论(0)

一帆风顺 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档